什么是java集合?
java集合是一系列泛型接口,描述最常见的数据类型格式。java为每一种典型的数据结构都提供了多种实现方式,而且这些类型都是用接口实现的。
java集合定义了两种基本的数据结构,一种是Collection,表示一组对象的集合。另一种是Map,表示对象之间的一系列映射或关联关系。
Collection接口:
Collection<E>是参数化接口,表示由泛型E对象组成的集合。JDK提供的Set,List和Queue都是Collection的子接口。
修改集合的方法,例如:add(),remove(),clear()和retainAll()方法;
Set接口:
集(set)是无重复对象组成的集合:不能有两个引用指向同一个对象,或者两个指向null的引用。
除了collection定义的接口之外,set没有在定义其他方法。set接口要求add()和addAll()方法必须遵循无重复原则。实现set接口的类主要是:HashSet,Lin
kedHashSet,TreeSet
TreeSet类使用红黑树数据结构维护集合。TreeSet类实现的是Set接口的子接口SortedSet接口
List接口:
List是一组有序的对象集合。列表中的每一个元素都由特定的位置,而且List接口定义了一些方法,用于查询或者设定一些特定位置的元素。除了基于索引>的get()方法和set()方法,还有继承了collection接口的方法,以及自定义的subList()方法(返回一个List对象,表示原列表指定范围内的元素)
Map接口:
映射是一系列键值对,一个键对应一个值。例如:Map(String,Integer)。Map接口定义了几个非常有用的方法:put()定义一个映射中的键值对,get()方法>查询指定键对应的值。remove()方法把指定键以及对应的值从映射中删除。一般来说实现map接口的类都要高效执行这三个基本方法。
Queue接口:
队列是一组有序的元素,由进出顺序组合分为两类:先进先出(FIFO 传统的数据结构上的队列),一种是先进后出(LIFO 传统的数据结构上的栈)。
Queue接口的方法:
1),把元素添加到队列的方法:
add(),对于有界队列,队已满时,会抛出异常
offer(),对于有界队列,对已满时,会返回false,而不会抛出异常
put(),对于有界队列,对已满时,对等待,知道由剩余空间时添加
2),把元素从队列中移除:
remove(),移除并返回队头元素,如果队头为空,抛出异常
poll(),移除并返回队头元素,如果队头为空,返回false而不会抛出异常
take(),删除并返回队头元素,如果队头为空,等待知道有队头元素时为止
drainTo(),把队列中所有元素都进行删除,然后把这些元素添加到指定Collection对象中。
3),查询:
element(),返回队头元素,但不删除
peek(),返回队头元素,但当队列为空时,返回null
~
~
java集合是一系列泛型接口,描述最常见的数据类型格式。java为每一种典型的数据结构都提供了多种实现方式,而且这些类型都是用接口实现的。
java集合定义了两种基本的数据结构,一种是Collection,表示一组对象的集合。另一种是Map,表示对象之间的一系列映射或关联关系。
Collection接口:
Collection<E>是参数化接口,表示由泛型E对象组成的集合。JDK提供的Set,List和Queue都是Collection的子接口。
修改集合的方法,例如:add(),remove(),clear()和retainAll()方法;
Set接口:
集(set)是无重复对象组成的集合:不能有两个引用指向同一个对象,或者两个指向null的引用。
除了collection定义的接口之外,set没有在定义其他方法。set接口要求add()和addAll()方法必须遵循无重复原则。实现set接口的类主要是:HashSet,Lin
kedHashSet,TreeSet
TreeSet类使用红黑树数据结构维护集合。TreeSet类实现的是Set接口的子接口SortedSet接口
List接口:
List是一组有序的对象集合。列表中的每一个元素都由特定的位置,而且List接口定义了一些方法,用于查询或者设定一些特定位置的元素。除了基于索引>的get()方法和set()方法,还有继承了collection接口的方法,以及自定义的subList()方法(返回一个List对象,表示原列表指定范围内的元素)
Map接口:
映射是一系列键值对,一个键对应一个值。例如:Map(String,Integer)。Map接口定义了几个非常有用的方法:put()定义一个映射中的键值对,get()方法>查询指定键对应的值。remove()方法把指定键以及对应的值从映射中删除。一般来说实现map接口的类都要高效执行这三个基本方法。
Queue接口:
队列是一组有序的元素,由进出顺序组合分为两类:先进先出(FIFO 传统的数据结构上的队列),一种是先进后出(LIFO 传统的数据结构上的栈)。
Queue接口的方法:
1),把元素添加到队列的方法:
add(),对于有界队列,队已满时,会抛出异常
offer(),对于有界队列,对已满时,会返回false,而不会抛出异常
put(),对于有界队列,对已满时,对等待,知道由剩余空间时添加
2),把元素从队列中移除:
remove(),移除并返回队头元素,如果队头为空,抛出异常
poll(),移除并返回队头元素,如果队头为空,返回false而不会抛出异常
take(),删除并返回队头元素,如果队头为空,等待知道有队头元素时为止
drainTo(),把队列中所有元素都进行删除,然后把这些元素添加到指定Collection对象中。
3),查询:
element(),返回队头元素,但不删除
peek(),返回队头元素,但当队列为空时,返回null
~
~