天天看点

JavaSE高级之集合类

​下面的内容是对java中的集合类进行的总结,过段时间会分享java的网路编程,多线程等内容,欢迎批评指正。

1.java中的集合是用来存放对象的,即集合是对象的集合,对象是集合的元素,java api集合类位于java.util包中。

2.常用集合类:

  collection接口,list接口, set接口,map接口。接口类结合泛型的使用

3.集合和数组的区别在于集合的长度是动态扩充的,数组中可以存放基本数据类型和引用数据类型,集合中只能存放引用数据类型。

4.java中的集合层次关系

  接口:

    iterator

    |-collection

    |    |-lis

    |    |   |-arraylist

    |    |   |-linkedlist

    |    |   |-vector

    |    |       |-stackt

    |    |-set

    |       |-hashset

    |       |-treeset

    |-listiterator

  map

    |-hashmap

    |-hashtable

    |-treemap

collection接口:

  1.一个collection对象中可以放不同类型的数据,是set接口和list接口的父类,元素是否有序是否允许重复取决于具体的实现

  2.set 为集合,元素无序且不允许重复,list 元素有序,允许重复。

  3.collection中的常用方法如下:

    添加元素:add(element : object): boolean

    移除元素:remove(element : object): boolean

    元素个数:size () : int

    判断是否为空:isempty() : boolean

    判断是否存在该元素:contains(element : objects) : boolean

迭代器:iterator() : iterator

  产生一个包含所有元素的数组:object[] toarray();

list接口

  添加元素: add(index : int. element : object) 

  移除元素:remove(index : int) : object

  获取元素:get(index : int)

  设置元素:set(index : int , element:objects);

  获取元素的索引: indexof(element : object) : int

迭代器: listiterator() : listiterator 

iterator 接口:

  iterator称为迭代器,便于实现对容器元素的遍历,所有实现了接口collection的集合类都有iterator()方法,返回一个实现了iterator接口的对象,iterator在遍历中只能单向进行,iterator接口是为遍历设计的可以取出和删除集合中的元素,但不可以删除其中的元素

iterator中的主要方法:

  object  next()  指向集合中的下一个元素

  boolean hasnext()  判断是否还有下一个元素

  void remove() 移除集合中的元素,执行next() 后只能执行一次remove();

collections 类:

  collections 类是类似于arrays类的工具类,它提供一些static静态方法供集合类使用或用来操作集合类

map接口:

  map内存储的是以键/值对这样成对出现的对象组,通过“键”对象,来查找“值”对象,map中的“键”是唯一的,key对象和value对象关联在一起

  map接口中的常用方法:

  object put(object key, object value) 添加键值对

  object get(object key) 获取键对应的值

  set keyset() 返回此映射中包含键的set视图

hashmap与hashtable的比较:

  hashtable是线程安全的,也就是说是线程同步的,hashmap是线程不安全的

  hashmap允许将一个null作为一个entry的key或者value 二hashtable不允许

  set内中存放的元素师不允许重复的,是无序的,list中的元素是有序的是允许重复的

  map的应用主要是运用键/值对进行快速查询

  arraylist和linkedlist 之间的区别在于随机查询的性能上arraylist的性能要好,但linkedlist对中间元素的删除和添加要好

  hashset和treeset的主要区别在于集合内的元素是否排序

  泛型的作用是对集合中的类型进行限制,避免去元素时进行强制转换

  hashmap与set的结合使用