Iterator和Iterable
Iterator: 为了是客户端用同一种逻辑来遍历集合,而不用考虑具体是那种集合
对于任意的集合c遍历其内部的元素都是相同的:
for(Iterator it = c.iterator(); it.hasNext(); ) { Object o = it.next(); // 对o的操作... }
在JDK1.5中,还对上面的代码在语法上作了简化
这就是我们熟知的for-each
for(Object o : c){//对o的操作}
而如果集合中的元素是自定义的类,自定义的类就要实现Iterable接口才能使用for-each的遍历方法。
Comparable和Comparator
Comparable:可比较的,实现了Comparable接口的类需要重写int compareTo(Object o)方法,表示这个可以比较大小,就可以使用集合的sort进行排序,也可以放入TreeSet中。
Comparator:比较器,一般用来比较两个自定义类对象的大小,
实现该接口的类需要重写 int compare(Object o1, Object o2) 方法。
并且一般用比较的类名加Comparator作为类名。
如果要把自定义的对象加到排序了的集合中,可以用Comparator作为参数来初始化集合。
String、StringBuffer、StringBuilder
效率StringBuilder > StringBuffer > String
String每次改变都会创建新的对象
StringBuffer是同步的
StringBuilder是异步的
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
网友评论