Java集合类
概念:一种工具类,就像是容器,储存任意数量的具有共同属性的对象。
集合的作用:
🌂在类的内部,对数据进行组织;
🌂简单而快速地搜索大数量的条目;
🌂有的集合接口,提供了一系列排列语序的元素,并且可以在序列中间快速的插入或者删除有关元素;
🌂有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
数组与集合的对比:
数组长度固定,而集合的长度是可变的,在运行过程中,动态扩展的。
数组智能通过下表访问元素(遍历),而有的集合可以通过任意类型查找所映射的具体对象。
java的典型集合类:Collection & Map
Java的集合类List,Queue是有序的可重复的集合;Set则是无序不可重复的集合。ArrayList是应用最广泛的List的一个重要实现类,数组序列。
List接口——ArrayList实现(底层实现)
增删改查add(),remove(),removeAll(),get()
泛型
集合中的元素,可以是任意类型的对象(对象的引用)(如果把某个对象放入集合,则会忽略它的类型,而是把它当作Object处理);泛型则是规定了某个集合只可以存放特定类型的对象(会在编译期间进行类型检查,可以直接按照指定类型获取集合元素)
泛型集合中的限定类型不能使用基本的数据类型,只能使用引用的数据类型,可以通过使用包装类限定允许存入的基本数据类型。
Set接口(实现类:HashSet)
🌂Set:元素无序且不可重复的集合,被称为集
🌂HashSet——哈希集,是Set的一个重要实现类
循环遍历Set中的某个元素,只能用foreach()于iterator(),不可以使用get(),Set中添加某个对象,无论添加多少次,最终只会保留一个该对象(的引用),并且,保留的是第一次添加的那个。
Map类
🌂Map提供的是一种映射关系,其中的元素是以键值对(key-value)的形式存储,能够实现key快速查找value
Map接口🌂Map中的键值对Entry类型的对象实例形式存在
🌂键(key值)不可重复,value值可以
🌂每个键最多只能映射到一个值
key-value的映射关系🌂Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法
🌂Map支持泛型,形式如:Map<K,V>
Map的实现类——HashMap类
HashMap类keySet()返回的是Map中所有键值的集合;entrySet则返回的是Map中所有键值对的集合。
List中contains的实现原理
containsCollections工具类
--sort()方法以及Collection.sort()的适用范围
sortsort()默认升序,可以自定义compartor作为新的排序规则
此外,collections类还可以提供乱序函数Collections.shuffle()
Comparable接口:在java中用于实现某些类的比较,相当于定义了比较的规则(Student类)默认比较规则
Comparable接口Comparator接口:临时比较规则(自由定义)
Comparator接口
网友评论