JAVA学习- exercise_6_6
文章目录
toString():返回该对象的字符串表示。
当程序使用System,out.println()方法输出一个对象,或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString方法返回该对象的字符串表示。也就是说,下面两行代码是等价的:
System.out.println§
System.out.println(p.toString())
使用omparator、Comparable实现Collections中的排序功能:
Collection:
集合的顶层接口,不能被实例化
根接口Collection
(一)常用子接口
List 实现类:ArrayList、Vector、LinkedList
Set 实现类:HashSet、TreeSet
(二) 添加功能
boolean add(object obj)添加一个元素
boolean addAll(Collection c)将集合c的全部元素添加到原集合元素后返回true
添加功能永远返回true
(三) 删除功能
void clear();移除所有元素
boolean remove(Object o)移除一个元素
boolean removeAll(Collection c)移除一个集合的元素,只要有一个被移除就返回true,改变原集合,删除原集合中和c中相同的元素
删除功能只有删除成功后才返回true
(四) 判断功能
boolean contain(object o)判断集合中是否包含指定的元素。
boolean containsAll(Collection c)判断原集合中是否包含指定集合c的所有元素,有则true,
boolean isEmpty()判断集合是否为空
(五) 获取功能
Iterator iterator()迭代器,集合的专用方式,实现遍历的功能
Object next()获取当前元素,并移动到下一个位置
boolean hasNext()判断此位置是否有元素
迭代器遍历实例在下面
(六) 长度功能
int size()元素的个数
数组和字符串中都是length()方法获取元素个数,集合中是size()方法
因为object包括集合、字符串、数组,所以其不能直接用length方法。
(七) 交集功能boolean retainAll(Collection c)
两个集合交集的元素给原集合,并判断原集合是否改变,改变则true,不变则false
(八) 把集合转换为数组
Object [] toArray()
Collections.sort()
Java中Collections.sort()的使用:
在日常开发中,我们很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中如:Map ,Set ,List 等集合中。它们都提共了一个排序方法 sort(),数据排序可以使用这个方法,但是要保证集合中的对象是可比较的。
Comparable<>
Comparator<>
我们可以利用 Comparable<> 接口并重写里面的compareTo()方法
或利用 Comparator<>接口并重写里面的compare( )函数方法来使对象可比较
首先类要继承这个接口
implements Comparable<> / implements Comparator<>
再重写compare( 两个参数)函数 / compareTo(一个参数)
Comparable是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。而Comparator是比较器,我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。
Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
两种方法各有优劣, 用Comparable 简单,只要实现Comparable接口的对象直接就成为一个可以比较的对象,但是需要修改源代码。 用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复情形。
异常测试
设计测试实例来测试程序是否按我们设计要求遇到异常抛出情形时正确抛出异常
-
@Test(expected = 异常类) 未抛出异常信息
-
@Rule public ExpectedException expectedEx = ExpectedException.none() 抛出异常信息
expectedEx.expect(异常类)
expectedEx.expectMessage(异常信息)