Ir ao conteúdo
  • Cadastre-se
Juliana Batista da Silva

Java Problemas com ArrayList declarado como tipo de uma classe

Recommended Posts

Bom, tô tentando fzr um pequeno código a nível didático mesmo e tô tendo problemas, fiz uma classe Livro na qual tem alguns atributos, dps criei outra classe chamada Acervo, nessa classe criei um ArrayList do tipo Livro como atributo desta classe, na classe principal, que se chama biblioteca, eu instanciei 2 obj do tipo Livro e 1 do tipo Acervo, e add os dois obj Livros ao obj Acervo através de um método que tem nessa classe e através de outro método tentei mostrar esse obj Acervo mas n ta funcionando 😕 se alguém puder me dar uma luz agradeço, faz um tempo que n mexo com prog, to voltanto agora e to meio perdida. Vou deixar o código com as classes aqui em baixo.

 

 

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package codigo;

/**
 *
 * @author JV
 */
public class Livro {
    String categoria;
    String autor;
    int codigo;

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    @Override
    public String toString() {
        return "Livro{" + "categoria=" + categoria + ", autor=" + autor + ", codigo=" + codigo + '}';
    }
    
    
    
}
/////////////////////////////////////////////

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package codigo;

import java.util.ArrayList;

/**
 *
 * @author JV
 */
public class Acervo {
    
    ArrayList <Livro> acervo;

    public Acervo() {
        this.acervo = new ArrayList();
    }
    

    public ArrayList<Livro> getAcervo() {
        return acervo;
    }

    public void setAcervo(ArrayList<Livro> acervo) {
        this.acervo = acervo;
    }

    @Override
    public String toString() {
        return "Acervo{" + "acervo=" + acervo + '}';
    }
    
    
    
    public void ConsultarLivro(int cod){
        for(int i=0;i>getAcervo().size();i++){
            if( cod == getAcervo().get(i).codigo){
                System.out.println( getAcervo().get(i));
            }
            else{
                System.out.println("Livro n encontrado.");
            }
        }
    }
    
    public void ConsultarAcervo(){
        System.out.println(getAcervo());
    }
    
    public void AddLivro(Livro liv){
        for(int i = 0; i>getAcervo().size();i++){
            if(liv == getAcervo().get(i)){
                System.out.println("Este livro já existe no acervo");
            }
            else{
                getAcervo().add(liv);
                setAcervo(getAcervo());
                System.out.println("Livro adicionado!!");
            }
        }
    }
    
    public void RemoverLivro(int cod){
        for(int i = 0; i>getAcervo().size();i++){
        if(cod == getAcervo().get(i).codigo){
            getAcervo().remove(i);
            setAcervo(getAcervo());
            System.out.println("Livro removido!!");
        }
        else{
            System.out.println("Livro n encontrado.");
        }
    }
    }
        
    
    
}
//////////////////////////////////////////

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package codigo;


/**
 *
 * @author JV
 */
public class Biblioteca {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
      Livro l1 = new Livro();
      l1.autor = "Carlos Drumon";
      l1.categoria = "Literatura";
      l1.codigo = 01;
      
      Livro l2 = new Livro();
      l2.autor = "Olavo Bilac";
      l2.categoria = "Literatura";
      l2.codigo = 02;
      
      
      Acervo acervo = new Acervo();
      
      acervo.AddLivro(l1);
      acervo.AddLivro(l2);
      
      acervo.ConsultarAcervo();
      
    
        
    }
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

@Juliana Batista da Silva Olá. Fiz algumas mudanças e algumas correções em seu código

Dá uma olhada para ver se é isso que você quer

Só uma pergunta: Por que esse comentário?

21 horas atrás, Juliana Batista da Silva disse:

faz um tempo que n mexo com prog, to voltanto agora e to meio perdida.

Volte a estudar! O que está te impedindo de estudar programação? :confused:

Segue o código:

 

Classe livro:

/**
 *
 * @author JV
 */
public class Livro {

    private String categoria;
    private String autor;
    private int codigo;

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    @Override
    public String toString() {
        return "Livro {" + "Categoria = " + categoria + ", Autor = " + autor + ", Código = " + codigo + '}';
    }

}

Classe Acervo:

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author JV
 */
public class Acervo {

    private List<Livro> acervo = new ArrayList<>();

    public void ConsultarAcervo() {

        if (acervo.size() <= 0) {
            System.out.println("Nenhum livro no acervo!!");
        } else {
            System.out.println("Livros adicionados: ");
            for (int i = 0; i < acervo.size(); i++) {
                System.out.println(acervo.get(i));
            }
        }
    }

    public void ConsultarLivro(int cod) {

        boolean encontrado = false;

        for (int i = 0; i < acervo.size(); i++) {
            if (cod == acervo.get(i).getCodigo()) {
                System.out.println(acervo.get(i));
                encontrado = true;
                break;
            }
        }
        if (!encontrado) {
            System.out.println("Livro n encontrado.");
        }
    }

    public void AddLivro(Livro liv) {

        boolean jaExiste = false;

        for (int i = 0; i < acervo.size(); i++) {
            if (liv.getCodigo() == acervo.get(i).getCodigo()) {
                System.out.println("Este livro já existe no acervo");
                jaExiste = true;
                break;
            }
        }
        if (!jaExiste) {
            acervo.add(liv);
            System.out.println("Livro adicionado!!");
        }

    }

    public void RemoverLivro(int cod) {

        boolean removido = false;

        for (int i = 0; i < acervo.size(); i++) {
            if (cod == acervo.get(i).getCodigo()) {
                acervo.remove(acervo.get(i));
                System.out.println("Livro removido!!");
                removido = true;
                break;
            }
        }
        if (!removido) {
            System.out.println("Livro n encontrado.");
        }
    }

}

Classe principal, com o método main:


public class Aplicacao {

    public static void main(String[] args) {

        Acervo acervo = new Acervo();

        acervo.ConsultarAcervo();

        System.out.println();

        Livro l1 = new Livro();

        l1.setAutor("Carlos Drumon");
        l1.setCategoria("Literatura");
        l1.setCodigo(01);

        Livro l2 = new Livro();

        l2.setAutor("Steve Alen");
        l2.setCategoria("Produtividade");
        l2.setCodigo(02);

        Livro l3 = new Livro();

        l3.setAutor("Victorine Viniane Mizhari");
        l3.setCategoria("Programação");
        l3.setCodigo(03);

        acervo.AddLivro(l1);
        acervo.AddLivro(l2);
        acervo.AddLivro(l3);

        System.out.println();

        acervo.ConsultarAcervo();

        System.out.println();

        acervo.RemoverLivro(01);

        System.out.println();

        acervo.ConsultarAcervo();

        System.out.println();

        acervo.ConsultarLivro(04);

    }

}

Já vou té dizer aqui: Seja bem-vinda ao universo da programação novamente! :aplausos:

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, giu_d disse:

Só uma pergunta: Por que esse comentário?

23 horas atrás, Juliana Batista da Silva disse:

faz um tempo que n mexo com prog, to voltanto agora e to meio perdida.

Volte a estudar! O que está te impedindo de estudar programação? :confused:

kkkkkkk,é que eu faço facul, e infelizmente caí de bloco por causa de umas matérias que envolviam bastante calculo e n me dei bem com a metodologia de alguns profs, como eu já tinha passado nas matérias de prog dos primeiros semestres eu foquei nas outras que tinha ficado e deixei de revisar prog. Agora surgiu a oportunidade de eu entrar na empresa junior de eng da computação, que é o meu curso, o pessoal tem contato direto com o mercado de trabalho e tal, to no processo seletivo pra entrar, e se der certo ae dificilmente vou deixar de ter contato com prog. Bom falando do código, era exatamente isso que eu queria sim, e ainda olhando o que eu fiz, puxei no subconsciente que o ArrayList tem um método pra verificar se um obj já existe nele ou n, que é o contains, ae n precisei usar um laço e o código ficou menor, mas achei interessante você ter usado uma var lógica em 2 dos métodos e dps só ter feito um "if" invertendo o valor dela, provavelmente usarei isso nos meus futuros cods kkk, em fim, muito obrigado por ter me ajudado, se tratando de programação pequenas alterações fazem bastante diferença, principalmente a nível didático, valeu    👍

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×