今天是学习Java[1]第9天,继续摸鱼。
集合接口(重要)
- Collection:最基本的集合接口,存储一组不唯一无序的对象
- List:有序的collection,能通过索引(0开始)访问对象
- Set:不保存重复元素的collection
- SortedSet:有序的set
- Map:存储一组key-value
- Map.entry:描述在一个map中的一个key-value
- SortedMap:按key升序的map
- Enumeration:枚举对象集合中的元素(被迭代器取代)
Set和List对比:
- Set存储的是无序的,不重复的
- List存储的是有序的,可以重复的
- Set查找效率低,删除和插入效率高,插入和删除不会改变已有的元素位置
- List查找效率高,插入和删除效率低,插入和删除会改变已有的元素位置
集合具体类(重要)
- AbstractCollection:实现大部分的集合接口
- AbstractList:继承AbstractCollection,实现大部分的List接口
- AbstractSequentialList:继承AbstractCollection,提供对数据元素的链式访问
- LinkedList:实现List的接口,主要用来创建链表
- ArrayList:实现List的接口,实现了可变大小的数组,随机访问和遍历元素时性能好
- AbastractSet:继承AbstractCollection,实现大部分的List接口
- HashSet:实现Set的接口,不允许出现重复的元素
- LinkedHashSet:可预知迭代顺序的Set接口的哈希表和链表实现
- TreeSet:实现Set的接口
- AbstractMap:实现大部分的Map接口
- HashMap:实现Map的接口
- TreeMap:继承AbstractMap,使用一棵树
- WeakHashMap:继承AbstractMap,使用弱密钥
- LinkedHashMap:继承HashMap,使用元素的自然顺序对元素进行排序
IdentityHashMap:继承AbstractMap,比较文档时使用引用相等
泛型方法
假设有一个需求:不管传入啥,都能比较大小,int用int方法比较,tree用tree方法比较。
- 泛型方法声明的【类型参数】(类似
<E>
) - 【类型参数】可以包含多个参数,用逗号隔开
- 【类型参数】可以作为返回类型
实例1:public static <E> void myPrint(E[] mydata)
实例2:public static <T extends Comparable<T>> T myMax(T a,T b)
泛型类
- 泛型类的声明和非泛型类的申明非常相似,只多了个【类型参数】(类似
<E>
)
- 类型通配符的使用:
public static void myprint(List<?> mydata)
参考
- ^Java入门教程 https://www.runoob.com/java/java-tutorial.html