4.5集合框架(arraylist,linkedlist,hashset,treeset,hashmap,treemap)
1 集合:用于存储、操作一组对象的数据结构
作用:解决不同类型的问题,包括数据存储,数据检索,数据排序等
1.1 层次
集合分为两个层次:collection、map
collection包括list\set\quene
Map包括map接口和其实现类


1.2 常见集合类型
List:有序集合,可以包含重复元素,例如Arraylist,Linkedlist
新建赋值的list方法:
List
ArrayList
Set:无序集合,不包括重复元素,如HAshset\Treeset
Map:键值对集合(两者一一对应),用于存储键值对和映射,例如HashMap,TreeMap
*是否有序和是否包含重复元素是挂钩的
1.3 选择合适的集合类型
根据需求选择(是否有序、是否允许重复)
根据集合的性能特点选择(比如数组的查找能力很强,增删能力较弱;而集合的增删能力强、查找能力弱)ArrayList vs LinkList
2 ArrayList
能力:可以自动扩展和缩小容量的能力(可看作是数组的增强版)
提供很多方法(动态添加,删改)
2.1(增删改查)
可以在指定位置添加
list.add(1,a)
可以在指定位置删除(可以删除第一次出现的元素)
list.remove(a);
重写
list.set(0,b)修改集合中的某一个值
获取元素
list.get(index)
indexOf(某一元素名字)找到则返回下标,否则返回-1
2.2 增强功能
测试长度
list.size();
循环取元素
for(String (或者其它类型):list(ArrayList的名字)){
}
通过iterator遍历(更安全)迭代器
Iterator
while (iterator.hasNext()) {
Integer element = iterator.next();
System.out.println(element);
}
3 LinkList
集合框架中的一种链表实现,用于存储和操作一组元素,由一系列节点组成,每个节点包含数据和指向下一个节点的作用
作用:适合插入和删除,适合频繁的修改
3.1(增删改查)
同Arraylist
3.2
offerLast(key)末尾添加
4 hashset(无序集合,用于存储一组唯一的元素)
哈希表其实也是一个数组(但是下标是由key决定)
作用:快速查找、插入、删除、帮助去除重复元素、支持高效的集合运算(交集和并集)
4.1(增删改查)
增:add
删:remove(通过数据对象)
判断一个元素是否存在:contain
获取大小:size
5 treeset(todo)
6 hashmap
把键和值联系起来(适用于各种数据映射要求)
键:key(用来标识)(必须唯一)(键存在的唯一意义就是标识)
值:value
map:映射
map<key,value>
键值对:entry
6.1 增删改查
增put("as","18")
查get("zs")得到18
改:直接改zs的后面的key
删:remove
是否存在:contain
6.2 (special ways)
获取键值对中的某一个集合:
Set
Collection
Iterator<Map.Entry<String,Integer>> iterator= hashmap.entrySet().iterator();
while(iterator.hasNext()){
System.out.println(iterator.next().getKey());
}
注意:调用next再调用就会前进两格
for each
for(Map.Entry<String,Integer>entry:hashmap.entrySet()){
System.out.println(entry.getKey());
}

浙公网安备 33010602011771号