JAVA基础整理-70.Java集合、泛型和枚举

集合中的接口

  接口是集合的抽象数据类型,提供对集合中所表示的内容进行单独操作的可能。

  • Collection 接口:该接口是最基本的集合接口,一个 Collection 代表一个元素。
  • List 接口:该接口实现了 Collection 接口。List 是有序集合,允许有相同的元素。使用 List 能够精确地控制每个元素插入的位置,用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,与数组类似。
  • Set 接口:该接口也实现了 Collection 接口。它不能包含重复的元素,SortedSet 是按升序排列的 Set 集合。
  • Map 接口:包含键值对,Map 不能包含重复的键。SortedMap 是一个按升序排列的 Map 集合。

接口实现类

  实现 List 接口的常用类有 ArrayList 和 LinkedList

实现 Map 映射的类是 HashMap,可实现一个键到值的映射。

  • HashSet:为优化査询速度而设计的 Set。它是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,实现比较简单。
  • TreeSet:该类不仅实现了 Set 接口,还实现了 java.util.SortedSet 接口,该实现类是一个有序的 Set,这样就能从 Set 里面提取一个有序序列。
  • ArrayList:一个用数组实现的 List,能进行快速的随机访问,效率高而且实现了可变大小的数组。
  • LinkedList:对顺序访问进行了优化,但随机访问的速度相对较慢。此外它还有 addFirst()、addLast()、getFirst()、getLast()、removeFirst() 和 removeLast() 等方法,能把它当成栈(Stack)或队列(Queue)来用。

Java Collection接口

  Collection 接口是 List 接口和 Set 接口的父接口,通常情况下不被直接使用。

注意:retainAll() 方法的作用与 removeAll() 方法相反,即保留两个集合中相同的元素,其他全部删除。

Java List集合:ArrayList类、LinkList类、ArrayList类和LinkList类的区别

  List 接口实现了 Collection 接口,它主要有两个实现类:ArrayList 类和 LinkedList 类。在 List 集合中允许出现重复元素。与 Set 集合不同的是,在 List 集合中的元素是有序的,可以根据索引位置来检索 List 集合中的元素,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。

ArrayList 类

  ArrayList 类提供了快速的基于索引的成员访问方式,对尾部成员的增加和删除支持较好。

  该类的常用构造方法有如下两种重载形式。

LinkList类

  LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,但是 LinkedList 类随机访问元素的速度则相对较慢。

Java Set集合详解:HashSet类、TreeSet 类

  Set 集合也实现了 Collection 接口,它主要有两个实现类:HashSet 类和 TreeSet类。Set  集合中不能包含重复的对象,并且最多只允许包含一个 null 元素。

HashSet 类

  HashSet 类是按照哈希算法来存储集合中的元素,在 HashSet 类中实现了 Collection 接口中的所有方法。

  如果向 Set 集合中添加两个相同的元素,则后添加的会覆盖前面添加的元素,即在 Set 集合中不会出现相同的元素

  TreeSet 只能对实现了 Comparable 接口的类对象进行排序

  注意:在使用自然排序时只能向 TreeSet 集合中添加相同数据类型的对象,否则会抛出 ClassCastException 异常。

Java Map集合详解

  Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。

  Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

注意:TreeMap 类的使用方法与 HashMap 类相同,唯一不同的是 TreeMap 类可以对键对象进行排序

Java Collection类:sort()升序排序、reverse()降序排序、copy()复制、fill()填充

正向排序

  使用 Collections 类的静态方法 sort() 可以对集合中的元素进行升序排序。

  

逆向排序

  与 sort() 方法的作用相反,调用 reverse() 静态方法可以对指定集合元素进行逆向排序。

逆向排序

  与 sort() 方法的作用相反,调用 reverse() 静态方法可以对指定集合元素进行逆向排序。

复制

  Collections 类的 copy() 静态方法用于将指定集合中的所有元素复制到另一个集合中。

Java泛型详解:Java泛型集合、泛型类、泛型方法、泛型的使用

  泛型可以在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。

泛型集合

  泛型本质上是提供类型的“类型参数”,也就是参数化类型。

泛型类

  泛型类一般用于类中的属性类型不确定的情况下

  在实例化泛型类时,需要指明泛型类中的类型参数,并赋予泛型类属性相应类型的值。

泛型方法

  是否拥有泛型方法,与其所在的类是不是泛型没有关系。

  如果 static 方法需要使用泛型能力,就必须使其成为泛型方法。

猜你喜欢

转载自www.cnblogs.com/luojie1216/p/10613315.html
今日推荐