Java集合

容器当中接口的层次图如下:


容器当中接口的特点如下:

.Collection接口

   Collection 表示一组对象,他是集中收集的意思,就是把一组数据收集起来,Collection接口的两个子接口Set,List:

   Set中的数据没有顺序,不可以重复。

   List中的数据有顺序,可以重复。

    Collection接口中定义的方法:


List接口:

  有序的Collection,容许存在重复的元素,常用的实现类ArrayList和LinkedList。

  List中实现的常用方法:

  void  add(Object element);//添加元素

  void add(int index,Object element);//在索引index处添加元素

  Object get(int index);//获取索引index处的值

  Object set(int index,Object element);//修改某一位置的元素。

  Object remove(int index);移除某一位置的元素。

  List实现类特点

  ArrayList:底层用数组实现的List,特点是:查询效率高 ,增删效率低(因为某处增加和删除元素时,会使该处后面的元素 位置后推或前移),线程不安全。

  LinkedList:底层是双向链表实现的List,特点是:查询效率低,增删效率高,线程不安全。

  Vector:底层用数组实现的List,特点:线程安全.

Map接口:

  • Map用于保存具有”映射关系”(key-value)的数据,Map的key不允许重复。
  • Map接口常见的实现类:Hashtable,HashMap,TreeMap
    • Hashtable: 内部存储的键值对是无序的是按照哈希算法进行排序,与HashMap最大的区别就是线程安全.键或者值不能为null,为null就会抛出空指针异常
    • HashMap(最常用): 内部存储的键值对是无序的是按照哈希算法进行排序,与Hashtable最大的区别就是非线程安全的,键或值可以为null。
    • TreeMap: 基于红黑树(red-black tree)数据结构实现, 按 key 排序,默认的排序方式是升序. 

Set接口:

  • 没有顺序,不能包含重复元素
  • Set判断两个对象相同不是使用”==”运算符,而是根据equals方法。
  • Set的实现类有HashSet和TreeSet; 
  • HashSet: 采用哈希算法实现的。它不保证 set元素的迭代顺序.HashSet的底层是用HashMap实现的(元素保存在HashMap的键值对(key-value)中的key中,因为key不可重复),因此查询效率较高,由于采用hashCode算法直接确定元素的内存地址,增删效率也挺高的。
  • TreeSet: TreeSet使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序.





   

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页