集合:专门用于存储对象的容器 长度可变
单值集合:Collection 父接口
List:有序 可重复 有下标
ArrayList:有序 可重复 有下标 底层:数组 Vector:被ArrayList干掉了
LinkedList:有序 可重复 有下标 底层:链表
Set:无序 不可重复 没有下标
HashSet: 无序 不可重复 不可排序 没有下标
不可重复的原因:覆写hashCode() equals() 注意到点是:可以去重,覆写hashCode() equals()。
TreeSet: 无序 不可重复 可以排序 没有下标 注意到点是:如果是基本数据类型包装类,它会自动按自然顺序排序,若果是自己创建的类则 实现必须实现Comparable接口,写compareTo方法
遍历方式:
List:for foreach 迭代器(集合专属的)
Set:foreach 迭代器
双值集合:Map 父接口 一次性可以添加 两个数据
HashMap:存储的是键值对 key值不能重复 value可以重复
TreeMap(了解):有序 key值不能重复 value可以重复
map集合的遍历:
方式一:通过keySet() 获取key值 进行遍历
for (Integer integer : set) {
System.out.println(integer +"="+hashMap.get(integer));
}
方式二:迭代器
1、通过entrySet() 打包键值对 获取打包以后的
Set<Entry<Integer, String>> entrySet = hashMap.entrySet();
/2、获取set集合的迭代器
Iterator<Entry<Integer, String>> iterator = entrySet.iterator();
while(iterator.hasNext()){
Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey()+"="+entry.getValue());
}