Adicionar os dados a um arraylist!
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!!
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??
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);
}
}
}
}Anderson Rissardi
Curtidas 0
Respostas
Kelvin Bianchi
20/10/2011
[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!!
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.
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);
}
}
}
}GOSTEI 0
Douglas Eric
20/10/2011
ArrayList<recebe> recebes = new ArrayList<recebe>(); //.. recebes.add(new recebe());
GOSTEI 0
Douglas Eric
20/10/2011
Este não é o construtor esse é o recebe aonde a ação acontece, a classe construtor é outra classe não postada por mim ai!
GOSTEI 0
Douglas Eric
20/10/2011
[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
//...
}
}
GOSTEI 0
Douglas Eric
20/10/2011
[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(...);
GOSTEI 0
Douglas Eric
20/10/2011
vou fazer um exemplo em escala reduzida para ver se você entende.....
GOSTEI 0
Douglas Eric
20/10/2011
Sério??
Não sabia que
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?
public NomedaClasse
public NomedaClasse(){
}GOSTEI 0
Douglas Eric
20/10/2011
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
se vira.
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));
}
}
}
GOSTEI 0
Douglas Eric
20/10/2011
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!!
GOSTEI 0
Douglas Eric
20/10/2011
[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(...);
GOSTEI 0
Diogo Souza
20/10/2011
[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.
:!:
GOSTEI 0
Douglas Eric
20/10/2011
[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.
:!: GOSTEI 0