2010-10-03 16 views
4
public class Student implements java.io.Serializable { 

private long studentId; 
private String studentName; 
private Set<Course> courses = new HashSet<Course>(0); 

public Student() { 
} 

public Student(String studentName) { 
    this.studentName = studentName; 
} 

public Student(String studentName, Set<Course> courses) { 
    this.studentName = studentName; 
    this.courses = courses; 
} 

public long getStudentId() { 
    return this.studentId; 
} 

public void setStudentId(long studentId) { 
    this.studentId = studentId; 
} 

public String getStudentName() { 
    return this.studentName; 
} 

public void setStudentName(String studentName) { 
    this.studentName = studentName; 
} 

public Set<Course> getCourses() { 
    return this.courses; 
} 

public void setCourses(Set<Course> courses) { 
    this.courses = courses; 
} 

}我可以在这个例子中使用一组或列表吗?

在这里,他们正在使用的Hashset拿到课程。我的疑问是,我可以使用列表在这里获得 课程。我在互联网上看到,该列表按指定的顺序获得了vaues,并允许 在列表中重复。而在设置它没有任何顺序,并不会允许 重复。我想知道我应该在哪里使用组和列表?任何人都可以建议

+2

你在网上阅读的内容基本上是对的。你可以学习更多,例如来自[集合上的Java教程](http://download.oracle.com/javase/tutorial/collections/index.html)。 – 2010-10-03 12:20:48

+0

@PéterTörök感谢这个不错的教程 – 2010-10-03 13:13:24

+0

如果我得到一个集合使用

私人地址studentAddress; 这是什么意思?它不是一个集合,它是另一个类的地址。我如何使用这个。这是什么用途? – 2010-10-03 13:36:27

回答

6

感觉就像你已经回答了你自己的问题。如果您需要物品集合,并且希望物品集合没有重复项目,请使用Set。您可以使用SortedSet来强制排序。

如果您的收藏允许有重复,那么您可以使用列表。我认为在你的例子中,一个集合的作品,因为学生可能永远不会两次相同的课程。

+0

@SB谢谢我清楚的理解。 – 2010-10-03 12:57:53

+0

@SB如果我收到使用

私人地址studentAddress; 这是什么意思?它不是一个集合,它是另一个类的地址。我如何使用这个。这是什么用途? – 2010-10-03 13:38:16

+1

是否收集

或设置
或只是地址studentAddress?如果它是'private Address studentAddress',那么你只是得到一个Address对象。如果它设置为
那么它就是这些Address对象的集合,并且如果它是Collection
那么它只是一些集合(可以是Set或List),并且你不应该关心底层实现 - 只是它的一些地址对象。 – 2010-10-03 14:05:24

3

ListSet之间的根本区别(如你所说)是Set不允许重复,而List一样。所以在你的情况下,Set更合适,因为学生不应该参加两次课程。其实他应该是能,但是在同一个学期。所以你可能让每个学生有一组CourseEnrollment对象,而不是Course对象。

注意维持秩序的Set也不是不可能的 - 有实现(像LinkedHashSet)能够维护元素的顺序,和其他一样TreeSet,其保持到排序的元素。

+0

谢谢,我明白了,并会按照它 – 2010-10-03 12:59:19

+0

如果我收到使用

私人地址studentAddress; 这是什么意思?它不是一个集合,它是另一个类的地址。我如何使用这个。这是什么用途? – 2010-10-03 13:38:37

+1

我不明白。 – Bozho 2010-10-03 14:02:51

相关问题