集合学习总结
集合总结一、概述
[*]作用:存储对象的容器,代替数组的,使用更加的便捷
[*]所处的位置:java.util
[*]体系结构
https://img2023.cnblogs.com/blog/3245131/202309/3245131-20230907193442153-1440006443.png
二、Collection
[*]内部的每一个元素都得是引用数据类型
[*]常用方法
[*]add(Object o)添加元素
[*]addAll(Collection c)将指定集合中的所有元素存入到当前集合
[*]remove(Object o) 移除元素
[*]removeAll(Collection c)删除当前集合中包含指定集合中的所有元素
[*]isEmpty() 判断集合是否为空集合
[*]size() 返回集合中元素的个数
[*]clear() 清空集合
[*]contains(Object o) :判断集合中是否包含指定的元素
[*]containsAll(Collection c)判断当前集合是否包含指定集合中的所有元素
三、List
[*]List是Collection下的一个子接口
[*]特点:有序,可重复,有下标
[*]常用方法
[*]add(intindex,Object)将指定元素添加到当前集合指定的位置
[*]remove(int index)删除当前集合指定位置上的元素
[*]get(int index)获取当前集合中指定位置上的元素
[*]set(int index, Object o) 将当前集合中指定位置上的元素替换为指定的元素
[*]List subList(int a,int b)截取当前集合中的元素获取一个子集、
四、List接口的实现类
(一)ArrayList(重点)
[*]特点:底层封装了一个数组用于存储数据,数组默认长度为10
[*]查询快,增删慢
[*]JDK1.2提供的
[*]线程不安全
(二)LinkedList
[*]特点:底层封装了链表用于存储数据,
[*]增删快,查询慢,首尾操作极快
[*]JDK1.2提供
[*]线程不安全
(三)Vector(了解)
[*]内部封装一个数组用于存储数据
[*]查询快,增删慢
[*]JDK1.0提供,最原始的集合
[*]线程安全的
[*]Stack(栈)继承了Vector
五、遍历集合
[*]for循环遍历
[*]新循环,增强for循环
[*]迭代器(iterator)遍历
[*]booleanhashNext() 问,是否有下一个元素
[*]E next() 取,获取下一个元素
[*]void remove()删删除当前元素
[*]forEach方法遍历结合了Lambda表达式
六、Collections (类)
[*]java.util.Collections是一个集合工具类
[*]相关方法
[*]Collections.sort(List list)将集合进行升序排序
[*]Collections.sort(List list, Comparator com) 自定义排序
[*]Collections.reverse(List list) 将集合元素进行反转
七、Set接口
[*]也是Collection下的子接口
[*]特点:无序,无下标,元素不可重复
[*]常用方法:Set的常用方法基本都是继承自Collection
八、Set接口的实现类
(一)HashSet
[*]特点: 无序,不重复,无下标
[*]数据存储方式:由数组 + 链表 进行存储,内部元素称为 entry
[*]去重机制:hashCode()方法 + equals()方法
(二) LinkedHashSet
[*]特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的)
[*]数据存储方式:由数组 + 链表 进行存储,内部元素称为 entry
[*]去重机制 :hashCode()方法 + equals()方法
(三)TreeSet
[*]特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序,元素必须实现Comparable接口)
[*]数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序
[*]去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同
[*]compareTo()比较器:
[*]返回值大于0 升序
[*]返回值等于0 相等,去重 ,
[*]返回值小于0 降序
九、Map
[*]特点:一个元素由两个对象构成,分别作为key和value,无序,无下标,键不可以重复,值可以重复,通过键来访问
[*]常用方法
[*]put(Object key,Object value) :往Map中存放一个元素
[*]get(Object key)通过指定的key获取当前集合中的value
[*]remove(Object key) 通过指定的key删除当前集合中的元素
[*]size() 获取集合中元素的个数
[*]keySet() :将集合中所有的key转换成一个Set集合
[*]entrySet(): 将集合中所有元素转换成一个Set集合
[*]values(): 将集合中所有的value 转换成一个Collection集合
[*]containsKey(Object key): 当前集合中是否包含指定的key
[*]containsValue(Object value):当前集合中是否包含指定的value
[*]遍历Map集合的四种方式
[*]遍历所有的key keySet()
[*]遍历所有的键值对entrySet()
[*]遍历所有的value values()
[*]forEach()遍历
十、Map接口的实现类
(一)HashMap(重点)
[*]特点:无序,不重复,无下标
[*]允许null作为key和value
[*]JDK1.2提供,线程不安全
[*]去重机制:hashCode() + equals()
(二)LinkedHashMap
[*]特点:不重复,无下标,有序(可以保存元素的插入顺序)
[*]允许null作为key和value
[*]JDK1.2提供,线程不安全
[*]去重机制:hashCode() + equals()
(三) TreeMap
[*]特点:不重复,无下标,有序(对key自动排序(自然排序))
[*]允许null作为key和value
[*]JDK1.2提供,线程不安全
[*]元素必须实现Comparable接口,并重写compareTo方法
[*]去重机制:根据compareTo方法,如果返回值为0则是同一个对象
(四)Properties
[*]一般会创*.properties文件作为配置文件
[*]Prpperties是用于读取*.properties文件的
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]