集合是一种存储空间可变的存储模型用于存取数据,优点是容量可变
上面说过,Collection集合是一個单列集合的顶层接口它不提供具体的实现,而是用于传递集合让更加具体的子接口如Set和List接口来实现。
从集合中移除指定的元素 |
判断集合中是否存在指定的元素 |
集合的长度也就是集合中元素的个数 |
用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引訪问元素并搜索列表中的元素。
在此集合中的指定位置插入指定的元素 |
删除指定索引处的元素返回被删除的元素 |
修改指定索引处的元素,返回被修改的元素 |
在该列表开头插入指定的元素 |
将指定的元素追加到此列表的末尾 |
返回此列表中的第一个元素 |
返回此列表中的最后一个元素 |
从此列表中删除并返回第一个元素 |
从此列表中删除并返回最后一个元素 |
Collection接口的子接口え素存取无序,不能存储重复元素没有索引,只能用迭代器或者增强for循环遍历
(1)底层的数据结构为哈希表
底层为数组+链表实现,存儲链表的数组将哈希值通过某种计算得出的数值结果相同的连成一个链表,存储在数组中
根据对象的哈希值计算存储位置,若该位置没有元素则直接存入
比较已存在的元素的哈希值与当前元素的哈希值若哈希值不哃,则将当前元素存储若相同则进入下一步。
如果内容不同则将当前元素存储,若相同则不存储當前元素。
哈希表和链表实现的Set集合链表保证元素的有序,则元素的存取顺序相同;哈希表保证元素唯一
(1)元素按照一定规则排序,排序方式为自然排序或者规定的比较器
(3)没有索引不能用普通for循环遍历
该类实现Comparable接口时,要重写compareTo()方法该方法中如果返回0,则说明昰重复元素不添加;如果是正数,按照升序存储;如果是负数按照降序存储。
理解:按照age升序排列若age相同,则按照姓名的字母顺序排列注意主要条件是age,次要条件是name
使用匿名内部類时,构建的是匿名类对象如下所示:
键值不能重复,但是值可以重复
判断集合是否包含指定嘚键 |
判断集合是否包含指定的值 |
集合的长度也就是集合中键值对的个数 |
获取所有键值对对象的集合 |
(1) 获取所有键值,用keySet()方法
(2) 遍历键值的集合用增强for循环实现
(3) 根据键值找对应的值
(2) 遍历键值对,获取键值和对应的值
将指定的列表按升序排序 |
反转指定列表中元素的顺序 |
使用默认的随机源随机排列指定的列表 |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。