boolean add(Object obj) //添加一个对象
boolean addAll(Collection c) //将一个集合中的所有对象添加到此集合中
void clear() //清空此集合中的所有内容
boolean contains(Object o) //检查此集合中是否包含o对象
boolean equals(Object o) //比较此集合是否与指定对象相等
boolean isEmpty() //判断此集合是否为空
boolean remove(Object o) //在此集合中移除o对象
int size() //返回此集合中的元素个数
Object[] toArray() //将此集合转换成数组
使用迭代器遍历:
Iterator it = collection.iterator(); while(it.hasNext()) { Object obj = it.next(); //迭代过程中不能使用collection.remove()方法,可用it.remove()方法 }
void add(int index, Object o) //在index位置插入对象o
boolean addAll(int index, Collection c) //将一个集合中的元素添加到此集合中的index位置
Object get(int index) //返回集合中指定位置的元素
List subList(int fromIndex, int toIndex) //返回fromIndex和toIndex之间的集合元素
ListIterator迭代器可用向前或向后遍历,添加、删除、修改元素
list->数组:Integer[] arr = list.toArray(new Integer[0]);
数组->list:List< Integer > list2 = Arrays.asList(arr); //受限集合,不能添加和删除
Integer[] arr2 = {100,200,333};
List< Integer > list2 = Arrays.asList(arr2);
DEFAULT_CAPACITY=10,默认容量 注意:如果没有向集合中添加任何元素时,容量为0 elementData ,存放元素的数组 size ,实际元素的个数 扩容为原来的1.5倍
基于HashCode实现元素不重复;
当存入元素的哈希码相同时,会调用equals进行确认,如果结果为true,则拒绝后者存入;
存储结构:哈希表(数组+链表+红黑树)
存储过程:(1)根据hashcode计算保存的位置,如果此位置为空,则直接保存,如果不为空则执行第2步;
(2) 再执行equals方法,如果equals方法为true,则认为是重复,否则,形成链表;
基于排序顺序实现元素不重复;
实现了SortedSet接口,对集合元素自动排序;
元素对象的类型必须实现Comparable接口,指定排序顺序;
通过CompareTo方法确定是否为重复元素;
存储结构:红黑树
用于存储任意键值对(Key-Value)
键:无序、无下标、不允许重复(唯一)
值:无序、无下标、允许重复
遍历:1、用keySet()拿到键
for(String key : map.keySet()) { System.out.print(key+map.get(key)); }
2、用entrySet()方法拿到映射对,效率更高
Set < Map.Entry< String, String > > entries = map.entrySet(); for(Map.Entry< String, String> entry : entries){ System.out.print(entry.getKey()+entry.getValue()); }
存储结构:哈希表(数组+链表+红黑树)
未put元素时table是null,size为0,放入put后,size初值为16,α填装因子为0.75,若size不够则翻倍;
jdk1.8之后每个链表(尾插)长度大于8时,并且元素个数大于等于64时,调整为红黑树;
HashSet实际上用的是HashMap的key;
类似TreeSet类要实现Comparable接口,指定排序顺序;
void reverse(List<> list) //反转集合中元素顺序
void shuffle(List<> list) //随机重置集合元素顺序
void sort (List<> list) //升序排序(必须要实现Comparable接口)
int binarySearch(List<> list, T t)//未找到为负数
void copy(List<> dest, List<> list)//注意两个list的长度要相同才能复制