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 kksk1 = Arrays.asList(1, 3, 5);
ArrayListkksk=new ArrayList<>(kksk1);

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 iterator = list.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 keys=hashMap.keyset()
Collection values=map.values()调用map内部的方法

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());
}

posted @ 2025-04-06 00:52  Toby0919  阅读(24)  评论(0)    收藏  举报