List和Set
set集合中不会出现两个equals比较为true的元素
list是有序集,set通常是无序的。
集合持有对象的引用
存入集合的元素应妥善重写equals方法,因为集合的很多方法都参考equals结果
不同的集合迭代器的实现不完全相同
Iterator是接口
遍历集合有两个方法:
boolean hasNext()
E next()
遍历集合必须遵循:问,取,删的过程。
删不是必须操作
hasNext就是问的过程
next就是取的过程
使用迭代器删除集合元素只能使用迭代器提供的remove方法
foreach只用于遍历循环和数组
linkList易于增删
ArrayList易于查找
get和set方法是list集合独有的,set集合是不存在的
get和set方法是基于下标操作的,而list是有序的~
add和remove方法是list独有的
对子集的任何操作都会影响原集合
实现Comparable接口时,通常要指定泛型,而泛型的类型,就是当前的类。
compareTo的返回值的正负决定了大小
当元素自身提供的比较规则,不能满足我们对于排序的需求时,我们可以提供一个比较器来指定比较规则。
当我们需要临时使用某一个接口的实现类的实例或一个类的子类实例时,这是我们使用匿名内部类的最佳时机,匿名内部类的特点是不需要声明类,且只有一个实例。
栈对操作有可追溯性
Map接口
Map中作为key的对象在集合中是不可以重复的。
在生成equals和hashCode时,应选中equals参与比较的属性即可。
当我们使用一个对象作为key存入hashMap后,尽量不要修改可能影响hashCode值的属性。