系列文章目录
目录
3.hashmap、hashtable、concurrenthashmap、treemap、linkedhashmap
提示:以下是本篇文章正文内容,下面案例可供参考
一、集合是什么?
什么是集合?
普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小。而是通过开辟新空间,把源数组的内容复制过去,把引用指向新的数组。
所以最早的时候通过链表实现动态对象数组。
但是这样做太复杂了,所以在 Java 中为了方便用户对各个数据结构操作,所以引入了类集的概念。
了类集是什么?
这个概念是从 JDK 1.2(Java 2)之后才正式引入的,可以把类集称为 java 对数据结构的实现(用户对数据结构的操作)。
所有的类集操作的接口或类都在 java.util 包中。
类集中最大的几个操作接口:Collection、Map、Iterator。
子类集结构图:
二、Collection 接口
Collection 接口是在整个 Java 类集中保存单值的最大操作父接口,里面每次操作的时候都只能保存一个对象的数据。
单值:一个对象的数据
此接口的定义在 java.util 包中:
public interface Collection<E> extends Iterable<E>
参数类型
E - 此集合中的元素类型
集合层次结构中的根接口。 集合表示一组对象,称为其元素 。
JDK不提供此接口的任何直接实现:它提供了更具体的子接口的实现,如Set和List 。
此接口的常用方法(都是抽象方法)如下所示:
1.List接口与Set接口区别:
相同:
都继承了Collection接口
不同:
List:允许存储重复内容且有序
Set:不允许存储重复内容
其子类分辨储存内容:无序hasSet,内容有序TreeSet,有序存储是指存的数据按照
Comparable接口或Comparator接口进行排序。
2.List 接口
接口的定义:
public interface List<E> extends Collection<E>(接口与接口继承)
在整个集合中 List 是 Collection 的子接口,里面的所有内容都是允许重复的(继承过来的)。
并扩展了一些方法:
方法整理:
增:
继承的方法:
public boolean add(E e) -------------------------------------向集合中插入一个元素--------尾部顺序插入
public boolean addAll(Collection<? extends E> c) -------将指定集合中的所有元素添加到此集合中(可选操作)。----------------------------------------------------向集合中插入一组元素
E:此集合的类型
<? extends E>: 指定集合,类型与类型的关系
C:指定集合
Collection<? extends E> c:用来判断指定集合中的元素是否和源集合元素类型相同!
扩充方法:
public void add(int index,E element) ---------------------------在指定位置处增加元素
------------------------------------指定位置插入,指定位置原元素及其他自动后移
boolean addAll(int index,Collection<? extends E> c) -------在指定位置处增加一组元素
-----------------------------指定位置插入一组元素,指定位置原元素及其他自动后移,所以能保持有序
总结:增加就add()方法,
一参:一个元素或者一组元素,类型保持一致
两参:指定下标插入元素
删:
继承的方法:
public void clear()