容器 API
常用的集合 List 集合,Set 集合,Map 集合。
List 与 Set 继承了 Collection 接口。
Collection 接口定义了存取一组对象的方法,其子接口 Set 和 List 分别定义了存储方式。
Set 中的数据对象没有顺序且不可以重复。
List 中的数据对象有顺序且可以重复。
Map接口定义了存储 键(Key) 值(Value) 映射对的方法。
Java.util.Collections 类,提供了一些静态方法,实现了基于 List 容器的一些常用算法。
Collection 接口定义了存取一组对象的方法,其子接口 Set 和 List 分别定义了存储方式。
Set 中的数据对象没有顺序且不可以重复。
List 中的数据对象有顺序且可以重复。s
Map 接口定义了存储 键(key),值(value)映射对,的方法。
Comparable 接口
所有可以 “排序”的类都实现了 java.lang.Comparable 接口。
Comparable 接口中只有一个方法: public int compareTo(object obj)
该方法返回 0 表示 this == obj 返回正数表示 this > obj 返回负数表示 this < obj
实现了 Comparable 接口的类通过实现 comparaTo 方法从而确定该类对象的排序方式。
如何选择数据结构
Array 读快改慢
Linked改快读慢
Hash两者之间
Map 接口
实现了 Map 接口的类用来存储 键,值 对。
Map 接口的实现类有 HashMap 和 TreeMap等。
Map 类中存储的 键---值 对通过键来标识,所以键值不能重复。
List 接口的实现类
ArrayList 类,可变的数组,允许所有元素,包括 null ,并且可以根据索引位置对集合进行快速的随机访问。
缺点是向指定的索引位置插入对象或删除对象的速度较慢。
LinkedList 类,采用链表结构保存对象。优点是便于向集合中插入和删除对象。
缺点:访问速度较慢。
Set 接口的实现类
HashSet 类,由哈希表支持, 不保证 Set 的迭代器顺序,不保证该顺序是永恒不变的,允许使用 null 元素。
TreeSet 类,不仅实现了 Set 接口,还实现了 java.util.SortedSet 接口。
TreeSet 类实现的 Set 集合在遍历集合时按照自然顺序递增排序,也可以是按照指定比较器递增排序。