GARANTIR DESCONTO

Fórum Adicionar os dados a um arraylist! #569941

20/10/2011

0

Eu tenho que fazer um programa para pegar alguns dados de 20 pessoas,depois tenho que retornar o imc dessas pessoas e também a quantidade de pessoas com |sobrepeso| ou |obesas; peso médio da população; o percentual de mulheres abaixo do peso; a quantidade de pessoas entre 20 e 30 anos que estão obesas. só que tenho que utilizar um arraylist pra armazenar os dados de cada uma dessas pessoas,para exibir depois.Como adiciono esses dados,de cada pessoa em uma possição do array? um pedaço do código que eu já fiz!!
import java.util.Scanner;
public class recebe {
	construtor c = new construtor();
	Scanner scan = new Scanner(System.in);
	
	public recebe(){
		
	for(int i = 0;i < 21;i++){
		System.out.println("Digite o nome: ");
		c.setNome(scan.next());
		
		System.out.println("Digite o cpf: ");
		c.setCpf(scan.next());
		
		System.out.println("Digite a altura: ");
		c.setAltura(Double.parseDouble(scan.next()));
		
		System.out.println("Digite o peso: ");
		c.setPeso(Integer.parseInt(scan.next()));
	
		System.out.println("Digite seu sexo :  1-masculino  e 2-feminino ");
		c.setSexo(Integer.parseInt(scan.next()));
		
		System.out.println("Digite a sua idade: ");
		c.setIdade(Integer.parseInt(scan.next()));
		
		c.setImc(c.getPeso()/(c.getAltura()*c.getAltura()));
		
		if(c.getImc() > 25){
			c.setSobrepeso(c.getSobrepeso() +1);
		}
	}
	}
}
como eu adiciono estes dados,em uma posição do arry list? e o da próxima pessoa na próxima posição e assima sucessivamente??
Anderson Rissardi

Anderson Rissardi

Responder

Posts

20/10/2011

Kelvin Bianchi

[quote="elmatador140"]Eu tenho que fazer um programa para pegar alguns dados de 20 pessoas,depois tenho que retornar o imc dessas pessoas e também a quantidade de pessoas com |sobrepeso| ou |obesas; peso médio da população; o percentual de mulheres abaixo do peso; a quantidade de pessoas entre 20 e 30 anos que estão obesas. só que tenho que utilizar um arraylist pra armazenar os dados de cada uma dessas pessoas,para exibir depois.Como adiciono esses dados,de cada pessoa em uma possição do array? um pedaço do código que eu já fiz!!
import java.util.Scanner;
public class recebe {
	construtor c = new construtor();
	Scanner scan = new Scanner(System.in);
	
	public recebe(){
		
	for(int i = 0;i < 21;i++){
		System.out.println("Digite o nome: ");
		c.setNome(scan.next());
		
		System.out.println("Digite o cpf: ");
		c.setCpf(scan.next());
		
		System.out.println("Digite a altura: ");
		c.setAltura(Double.parseDouble(scan.next()));
		
		System.out.println("Digite o peso: ");
		c.setPeso(Integer.parseInt(scan.next()));
	
		System.out.println("Digite seu sexo :  1-masculino  e 2-feminino ");
		c.setSexo(Integer.parseInt(scan.next()));
		
		System.out.println("Digite a sua idade: ");
		c.setIdade(Integer.parseInt(scan.next()));
		
		c.setImc(c.getPeso()/(c.getAltura()*c.getAltura()));
		
		if(c.getImc() > 25){
			c.setSobrepeso(c.getSobrepeso() +1);
		}
	}
	}
}
como eu adiciono estes dados,em uma posição do arry list? e o da próxima pessoa na próxima posição e assima sucessivamente??
não entendo porquê um arraylist? é mais fácil usar apenas um array. mas dai, você terá de fazer um array para cada variável.
Responder

Gostei + 0

20/10/2011

Douglas Eric

ArrayList<recebe> recebes = new ArrayList<recebe>();

//..


recebes.add(new recebe());
Mas tem coisas MUITO erradas nesse seu código. O construtor não devia pedir os dados, apenas receber eles, os dados deviam ficam em uma classe que descrevesse o tipo do objeto (nesse caso, Pessoa), e depois você iria criar várias Pessoas. Além do mais, nome de classe deve ter a primeira letra maiúscula
Responder

Gostei + 0

20/10/2011

Douglas Eric

Este não é o construtor esse é o recebe aonde a ação acontece, a classe construtor é outra classe não postada por mim ai!
Responder

Gostei + 0

20/10/2011

Douglas Eric

[quote="elmatador140"]Este não é o construtor esse é o recebe aonde a ação acontece, a classe construtor é outra classe não postada por mim ai!
public class recebe {  

//..
  public recebe(){ //ISTO É UM CONSTRUTOR

  //...

   }

}
Responder

Gostei + 0

20/10/2011

Douglas Eric

[quote="elmatador140"]Este não é o construtor esse é o recebe aonde a ação acontece, a classe construtor é outra classe não postada por mim ai!
o que o sekkuar quis dizer, é que os dados estão indo para o construtor, quando você declarou:
 construtor c = new construtor(); 

// depois....

c.setNome(...);
pelo o que eu entendi, você deveria usar uma outra classe onde nela seriam "settadas" as informações e o construtor somente retornaria os dados. [eu acho que é isso que ele quer dizer]
Responder

Gostei + 0

20/10/2011

Douglas Eric

vou fazer um exemplo em escala reduzida para ver se você entende.....
Responder

Gostei + 0

20/10/2011

Douglas Eric

Sério?? Não sabia que
public NomedaClasse
  public NomedaClasse(){

                            }
era construtor!!sempre achei que era um método para diferenciar variaveis globais de locais e para botar os outros métodos la dentro!! Sempre criei outra classe construtor(fui instruido assim) Métodos didaticos sera?
Responder

Gostei + 0

20/10/2011

Douglas Eric

Não existe "classe construtor" "construtor" é um método especial, utilizado para iniciar um objeto. e sim, <modificador> <nome da classe> (<argumentos>) constitui um cosntrutor, se você não sabia, agora ficou sabendo. http://javafree.uol.com.br/topic-4424-Como-funciona-o-metodo-construtor.html http://www.slideshare.net/top100elearning/java-aula-3-construtores http://www.tiexpert.net/programacao/java/metodo-construtor.php e aqui está o seu exemplo

import java.util.*;
public class Pessoa{
    
    private String nome;
    private String cpf;
    private int idade;

    public Pessoa(String nome, String cpf, int idade) {
        this.nome = nome;
        this.cpf = cpf;
        this.idade = idade;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public static void main(String[] arr){
        ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>(); //aqui está a arraylist
        Scanner sc = new Scanner(System.in);
        
        System.out.println("Digite o numero de pessoas a serem cadastradas: ");
        int n = sc.nextInt();
        for(int i = 0;i<n;i++){
            System.out.println("Digite o nome da pessoa #"+(i+1));
            String nome = sc.nextLine();
            System.out.println("Digite o cpf de "+nome);
            String cpf = sc.nextLine();
            System.out.println("Digite a idade de "+nome);
            int idade = sc.nextInt();
            pessoas.add(new Pessoa(nome,cpf,idade));
        }
    }
   
}
se vira.
Responder

Gostei + 0

20/10/2011

Douglas Eric

Foi o que eu percebi!! Pode ficar bem calmo ai!! Eu não falei zuando,não fui irônico!!Eu realmente não sabia!!
Responder

Gostei + 0

20/10/2011

Douglas Eric

[quote="ipcfg"] não entendo porquê um arraylist? é mais fácil usar apenas um array. mas dai, você terá de fazer um array para cada variável.
Poderia citar bastante "por que" de usar um ArrayList, mas irei me limitar apenas no principal (minha opinião): [b][color=green]ArrayList não tem tamanho fixo.[/color][/b] Tente usar um vetor para armazenar nele dados que vc não sabe a quantidade de dados a inserir, ou vc cria um vetor com um tamanho excessivo, ou um metodo que declare outro vetor com o dobro do tamanho do primeiro e receba os valores do primeiro, e isso é muito de chatop de fazer... garanto... [quote="ipcfg"] o que o sekkuar quis dizer, é que os dados estão indo para o construtor, quando você declarou:
construtor c = new construtor();    
  
// depois....   
  
c.setNome(...);  
 construtor c = new construtor(); 

// depois....

c.setNome(...);
pelo o que eu entendi, você deveria usar uma outra classe onde nela seriam "settadas" as informações e o construtor somente retornaria os dados. [eu acho que é isso que ele quer dizer]
Não tem nada a ver com isso que vc se referiu... Da uma olhada no que o @sekkuar explicou, vc ira entender tbm...
Responder

Gostei + 0

21/10/2011

Diogo Souza

[quote="sekkuar"]"construtor" é um método especial, utilizado para iniciar um objeto.
Só retificando, definição de construtor [i]by Wikipedia[/i]: [b]"Construtor em linguagens de programação orientadas a objeto é um método chamado assim que uma nova instância do objeto for criada. Tal método geralmente é responsável pela alocação de recursos necessários ao funcionamento do objeto além da definição inicial das variáveis de estado (atributos)."[/b] Logo, o método construtor não inicia o objeto, quem faz isso é o operador [b]new[/b]. Ele é um método chamado em consequência à inicialização do objeto, inicializando algo para o próprio (se for implementado) ou não. :!:
Responder

Gostei + 0

21/10/2011

Douglas Eric

[quote="Metal Java Full"][quote="sekkuar"]"construtor" é um método especial, utilizado para iniciar um objeto.
Só retificando, definição de construtor [i]by Wikipedia[/i]: [b]"Construtor em linguagens de programação orientadas a objeto é um método chamado assim que uma nova instância do objeto for criada. Tal método geralmente é responsável pela alocação de recursos necessários ao funcionamento do objeto além da definição inicial das variáveis de estado (atributos)."[/b] Logo, o método construtor não inicia o objeto, quem faz isso é o operador [b]new[/b]. Ele é um método chamado em consequência à inicialização do objeto, inicializando algo para o próprio (se for implementado) ou não. :!:
se eu não consigo explicar pra eles o que é um "construtor", quero ver eles entenderem isso que você falou xD
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar