2014-10-22 30 views
-5

有人請指教我如何從List對象中找到最低的學生ID?如何從列表數組中找到最低字段

我Student類:

public class Student{ 
private int id; 
private String name; 

..Getter and setters 

主要類:

public class test { 

    public static void main(String[] args) { 
     Student s1 = new Student(105, "John"); 
     Student s2 = new Student(101, "Peter"); 
     Student s3 = new Student(108, "Simon"); 
     Student s4 = new Student(103, "Jo"); 

     List<Student> students = new ArrayList<Student>(); 
     students.add(s1); 
     students.add(s2); 
     students.add(s3); 
     students.add(s4); 

我如何可以檢索從列表中最小的學生證?

由於提前,

+2

通過迭代列表中所有元素的ID? – TheLostMind 2014-10-22 02:43:03

+1

您需要一個變量來保存迄今爲止在列表中遇到的最低ID。將其初始化爲null。現在,循環列表中的每個項目。它是否低於以前的最低值(或者是之前的低==空值)?如果是這樣,那是你的新低。 – 2014-10-22 02:45:59

+1

這與其他任何「在列表/數組中找到最小X」沒有區別。請向我們展示您嘗試的內容,以及您遇到的具體問題。 – Parker 2014-10-22 02:48:22

回答

1

這樣做將只取一次通過名單,並保持最小的跟蹤最快的(計算)的方式:

Integer min = null; 
for (Student student : students) { 
    if (min == null || student.getId() < min) { 
     min = student.getId(); 
    } 
} 

那麼最小的學生證將被存儲在min中。

1
Iterator<Student> itr = students.iterator(); 
Student min_student = itr.next(); 
Student curr_student; 
while (itr.hasNext()) { 
    curr_student = itr.next(); 
    if (curr_student.getId() < min_student.getID()) { 
     min_student = curr_student; 
    } 
} 

// min_student這裏是最小id的那個。

相關問題