集合
解决:数组定长
顶层接口
Iterator迭代器 Collection(单列集合) Map(双列集合)
Collection:
可以存放重复元素的List子接口
ArrayList 动态数组
LinkedList 双向链表集合
Vector 向量
add(a) 末尾添加
add(index,a) 向指定的索引位置index,添加元素a
get(index) 根据索引值 获取该索引位置上的元素
set(index,a) 修改指定索引位置上的元素为a
remove(index) 删除指定索引上的元素 其后元素的位置-1
remove(object) 删除第一个object对象 其后元素的位置-1
size() 获取集合内元素个数
遍历
list.forEach(System.out::println);
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
List list = new ArrayList();
for(E e : list){
System.out.println(e);
}
Iterator iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
不可以存放重复元素的Set子接口 哈希值
注意:先执行hasCode() 值不等 直接存放
相等的话 看equals() 若equals也相等 重复元素 不存放
HashSet 哈希表 链表
TreeSet 哈希表 红黑树
add(e) 追加
size() 元素个数
TreeSet的使用 注意:
1.放入的元素必须是可以比较的 Implements Comparable
2.也可以在创建是 指定比较方式 new TreeSet(new Comparator{
重写compare(o1,o2)
})
3. new TreeSet((o1,o2)->返回值) 1,0,-1
返回值例如:o1>o2?1:-1