- 1. 与数组的对比——为何选择集合而不是数组
(1)数组的长度固定,集合长度可变
(2)数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。
- 2.Collection接口
(1)是List、Set、Queue接口的父接口
(2)定义了可用于操作List、Set和Queue的方法——增删改查
- 3.List接口及其实现类——ArrayList
(1)List是元素有序并且可以重复的集合,被称为序列
(2)List可以精确的控制每个元素的插入位置,或删除某个位置元素
(3)ArrayList——数组序列,是List的一个重要实现类
(4)ArrayList底层是由数组实现的
(5)常用方法:add()
、addAll()
、remove(int index)
、set(int index, E element)
、get()
、size()
(6)注意事项:对象存入集合都变成Object类型,取出时需要类型转换。
(7)数组转list:Arrays.asList()
(8)泛型:
集合中的元素,可以是任意类型的对象(确切的说:是“对象的引用”):如果把某个对象放入集合,则会忽略它的类型,而把它当做Object处理。
泛型则是规定了某个集合只可以存放特定类型的对象:会在编译期间进行类型检查,可以直接按指定类型获取集合元素。
泛型集合可以添加泛型对象实例,也可以添加泛型子类型的对象实例;泛型不能是基本类型(byte,short,int,long,float,double,boolean,char等),必须是引用类型(String类型不是基本类型,它实际上是被final修饰);如果要使用基本类型,泽需要通过使用其包装类(如:Integer,Float,Boolean等)实现。
- Set接口及其实现类——HashSet
(1)Set是元素无序并且不可以重复的结合,被称为“集”
(2)HashSet——哈希集,是Set的一个重要实现类
(3)Set中,添加某个对象,无论添加多少次,最终只会保留一个该对象(的引用)。并且,保留的是第一次添加的那个。
(4)Set中可以添加null - Map接口及其实现类——HashMap
(1)常用方法:put(K key, V value)
、remove(Object key)
、size()
、values()
、keySet()
、entrySet()
(2)HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;HashMap中的Entry对象是无序排列的;Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复)
(3)通过keySet()
、entrySet()
来遍历Map中的数据。 - Collections工具类
(1)泛型为整数型包装类或者String类型,可以直接调用Collections.sort()
方法进行比较。
(2)泛型为其他类型的,需要自定义比较规则:<1>该泛型实现Comparable
接口中的compareTo()
方法,再调用Collections.sort(List<T> list)
;<2>重新定义比较规则,并实现Comparator
接口中的compare()
方法,再调用Collectins.sort(List<T> list, Comparator<? super T> c)
。
Java中的集合框架
最新推荐文章于 2023-01-03 14:54:45 发布