2013-12-03 6 views
0

В настоящее время у меня установлен мой код, поэтому имя и тема ученика добавляются в мой администратор, а затем распечатываются, когда пользователь сделан. Как бы то ни было, когда я не хочу добавлять строку сейчас, я хочу добавить номер студента, я не знаком с тем, как это сделать. Я попытался заменить набор с помощью add и string с int, но не превалировал.Как добавить целое число в мой arraylist?

Вот мой основной код

import java.util.*; 

public class StudentData 
{ 
    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 
     ArrayList<Student> studentList = new ArrayList<Student>(); 
     String yesNo = "true"; 
     do 
     { 
      System.out.println("Enter student's name: "); 
      String name = in.next(); 
      System.out.println("Enter student's subject: "); 
      String subject = in.next(); 
      System.out.println("Enter student's number: "); 
      int number = in.nextInt(); 
      Student s = new Student(name,subject,number); 
      s.setName(name); 
      s.setSubject(subject); 
      s.Number.add(number); 
      studentList.add(s); 


      do 
      { 
       System.out.println("Would you like to enter data for another student? Yes/No "); 
       yesNo = in.next(); 
       } 
      while (!yesNo.equalsIgnoreCase("YES") && !yesNo.equalsIgnoreCase("NO")); 
      } 
     while (yesNo.equalsIgnoreCase("YES")); 


     for(int i = 0; i < studentList.size(); i++) 
     { 
      System.out.println(studentList.get(i).getName()); 
      System.out.println(studentList.get(i).getSubject()); 
      } 
     } 
    } 

и

class Student 
{ 
    private String studentName; 
    private String studentSubject; 
    public Student(String name, String subject, int number) 
    { 
     setName(name); 
     setSubject(subject); 
     Number.add(number); 
     } 
    public String getName() 
    { 
     return studentName; 
     } 
    public void setName(String name) 
    { 
     studentName = name; 
     } 
    public String getSubject() 
    { 
     return studentSubject; 
     } 
    public void setSubject(String subject) 
    { 
     studentSubject = subject; 
    } 
    public int getNumber() 
    { 
     return studentNumber; 
     } 
    public void Number.add(int number) 
    { 
     studentNumber = number; 
    } 
} 
+0

Что значит целое число. ? Сможете ли вы еще немного разобраться? Спасибо в продвинутом – user3050340

+0

Не похоже, чтобы ваш класс учеников имел место для хранения номера ученика. И что такое Number.add? – PakkuDon

+2

Похоже, что при создании каждого «Студента» вам явно не нужно явно вызывать 's.setName (name)' и эти другие сеттеры, потому что конструктор для 'Student' автоматически обрабатывает это. – SimonT

ответ

2

Как вы храните Student объекты в списке вы также хранить переменные-члены каждого объекта, как вы их ввели. Поэтому для хранения целого не требуется никакого другого подхода.

Вы можете объявить свой private int studentNumber; в своем классе ученика, добавить для него геттер и сеттер, а затем изменить свой конструктор так, чтобы setStudentNumber(number); работал так же, как установка двух строк.

Затем итерация по списку можно использовать из «повышенных для» синтаксиса вместо простого старого цикла, а это означает:

for (Student s : studentList) { 
    System.out.println(s.getName()); 
    System.out.println(s.getSubject()); 
    System.out.println(s.getStudentNumber()); 
} 

Надеется, что это помогает, если вам нужно что-нибудь еще раз дай мне крик ниже.

+0

Мне интересно, нужен ли новый ArrayList или класс Integer не нужен? –

+0

Спасибо за ваш ответ, но если бы я должен был установить его как 'List studentNumbers = new ArrayList <>();' не будет ли он недопустим для других входов, в которых он также используется? т.е. строки – user3050340

+1

@Bucco Большинство IDE теперь отмечают 'новый ArrayList ();' как аргумент избыточного типа, поэтому это действительно не нужно. –

Смежные вопросы