存储对象的容器,并提供操作对象的方法。

知识点

  • 数据结构:线性表、树、散列表
  • Java 知识:泛型
  • 设计模式:迭代器

1、集合

集合:存储对象的容器,并提供操作对象的方法。

分为 CollectionMap 两大体系。

  • Collection:存储单值。
  • Map:存储 K-V 键值对(也称记录)。

Hint:集合只能存放引用类型。

若使用基本类型,编译器会自动装箱(影响性能)。

2、Collection 体系

java如何设置集合下标 java集合有下标吗_Java

2.1、常用实现类

Collection 分为 ListSet 体系。

  • List:有序,有下标,可重复。

Vector 类

ArrayList 类

LinkedList 类

Java 版本

1.0

1.2

1.2

存储结构

数组

数组

双向链表

线程安全




  • Set:无序,无下标,不可重复。

HashSet 类

TreeSet 接口

(SortedSet 实现类)

LinkedHashSet 类

(HashSet 子类)

Java 版本

1.2

1.2

1.4

存储结构

HashMap

红黑树

链表

线程安全




元素去重原理

基于 hashCode

基于排列顺序

基于 hashCode

说明

判断相等:先 hashCode(),再 equals()

对集合元素自动排序(需实现 Comparable 接口)

保留元素的插入顺序(默认升序)

2.2、Collections 工具类

类比数组工具类 Arrays

集合工具类也位于 java.util 包下。

常用方法

含义

说明

binarySearch()

二分查找

-

reverse()

反转

-

shuffle()

打乱

-

swap()

交换位置

默认升序

sort()

排序

-

synchronizedXxx()

同步化

将线程不安全的集合包装为线程安全

(如 synchronizedSet()synchronizedList() 等)

3、Map 体系

java如何设置集合下标 java集合有下标吗_数组_02

常用实现类

无序,无下标,Key 唯一

Hashtable

HashMap

TreeMap

Java 版本

1.0

1.2

1.2

存储结构

数组+链表

数组+链表、红黑树

红黑树

线程安全




说明

K/V 非空

K 和 V 可空

对集合元素自动排序(需实现 Comparable 接口)