1.HashSet中的 iterator() 方法——用于取出集合中的元素
public Iterator<E> iterator()--------------------------返回Iterator类型的对象、返回针对集合中元素的迭代器、返回的元素没有特定顺序
帮助文档中,返回的Iterator对象是接口类型。但是不可能返回接口类型,实际上是返回的是实现接口的类的实例,但这个类我们不知道,我们只知道返回的是Iterator类型的,具体是哪个子类我们不清楚。
Iterator接口:返回针对于集合的迭代器。具有三个方法:
(1) boolean hasNext()
如果这个迭代器后面有更多的元素,就返回true
(2) E next()
返回迭代中的下一个元素
(3) void remove()
使用iterator方法产生迭代器对象,然后使用迭代器的方法
2.SortedSet接口(有排序的集合)继承了Set,SortedSet的主要实现类是TreeSet
TreeSet的两种排序方式:自然排序、Comparator排序
自然排序方式虽然简单,但是并不实用
如果要按照学生分数高低排序,此时自然排序就无能为力了
只add一个元素的时候正常,再添加元素就异常了。通过阅读文档中TreeSet的add方法:如果指定对象不能和当前对象进行比较,那么就会抛出异常
由于我们没有告诉程序按照分数去进行比较,所以程序不知道该怎么比
上面程序使用TreeSet的无参数构造方法。我们应该使用另外的构造方法——TreeSet(Comparator<? super E> comparator),根据指定的comparator排序!
int compare (T o1 , T o2)——compare方法,返回负、零、正
3.要使用自定义的排序方法 Comparator
使用TreeSet的带Comparator的构造方法:TreeSet(Comparator<? super E> comparator)--------------传进去comparator接口类型的实例
compare(new Integer(1),new Integer(2))----------------------返回负数
自己定义一个类,实现Comparator接口
然后使用Comparator里面的compare方法,自定义的排序方法就是这样体现出来的
MyComparator类中的compare方法,如果返回-1,代表o1比o2小,对于字符串来说就是s1在s2前面。
希望按照反序排序字符串,查看String类中的方法,compareTo方法,如果a.compareTo(b)返回负数,那么a在b之前。如果返回正数,那么a在b后面
4.按学生分数升序排序
如果p1.score小于p2.score,那么返回的就是负数,实现了分数的升序
5.针对于数组,存在Arrays类完成对数组的一些辅助功能;
里面的方法都是静态的,
对于集合,存在Collections类完成对集合的一些辅助功能
里面的方法也都是静态的,直接通过类名调用