在计算机中管理对象时,当获取多个对象后,也需要一个容器将它们管理起来,这个容器就是集合
集合本质是基于某种数据结构的数据容器。常见的数据结构:数组(Array)、集合(Set)、队列(Queue)、链表(Linkedlist)、树(Tree)、堆(Heap)、栈(Stack)和映射(Map)等结构;集合长度可变
集合的继承体系结构
Collection
List java.util.List java.awt.List(图形用户组件)
ArrayList 基于动态数组数据结构 访问元素速度高
Vector 基于数组
LinkedList 基于链表数据结构 插入或删除数据效率高
Set
HashSet 基于散列表数据结构
TreeSet 基于红黑树(是一个自平衡的二叉树)
Map<key,value>
HashMap<k,V> 基于散列表数据结构
boolean addAll(Collection c): 添加元素
boolean remove(Object o): 移除一个元素
void clear(): 移除所有元素
boolean removeAll(Collection c): 只要有一个元素被移除了,就返回true
boolean retainAll(Collection c)
A对B做交集,最终的结果保存在A中,B不变,返回的是a的变化
把集合转为数组
Object[] toArray()
public static List<> asList()把数组转为集合,该集合的长度不可变
Map
Map(映射)集合由两个集合构成,一个是键(key)集合,一个是值(value)集合,不能有重复的元素;键值是成对出现的。
Map集合遍历
通过Map.keySet遍历key和value
map.keySet()返回的是所有key的值
map.get(in)得到每个key对应value的值
通过Map.entrySet使用iterator遍历key和value
通过Map.entrySet遍历key和value
map.entrySet() 返回此映射中包含的映射关系的 Set视图。
通过Map.values()遍历所有的value,但不能遍历key
泛型:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常
ArrayList<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("java");
//增强for
for (String s : list) {
System.out.println(s);
}