乐趣区

关于java:J2SEI集合类

什么是汇合类?

汇合类寄存于 java.util 包中。汇合类寄存的都是对象的援用,而非对象自身,出于表白上的便当,咱们称汇合中的对象就是指汇合中对象的援用。

汇合类型次要有:

map(映射):

其次要实现类有 HashMap、TreeMap;

Map 对值没有唯一性要求,对健要求惟一,如果退出已有的健,原有的值对象将被笼罩;

Hashtable 基于线程平安,效率低,古老,
HashMap 基于非线程平安,效率高。

Collection:

collection 是最常见的汇合的下级接口。

继承自 collection 的罕用接口有 List,Set,都是单列的汇合。

set(集):

1)Set 实现的根底是 Map(HashMap);

2)次要实现类有 HashSet、TreeSet;

​ HashSet(),调用对象的 hashCode()办法,取得哈希码,而后再汇合中计算寄存对象的地位。

​ TreeSet(),继承 ShortedSet 接口,可能对汇合中对象排序。

3)Set 中的元素是不能反复的,如果应用 add(Object obj) 办法增加曾经存在的对象,则会笼罩后面的对象;

 public class SetTest {public static void main(String[] args) {Set set=new HashSet();
       // 增加数据
      set.add("abc");
      set.add("cba");
      set.add("abc");// 成心反复
      set.add(123);
      set.add(true);
 
      System.out.println("汇合元素个数:"+set.size());
       // 遍历出汇合中每一个元素
      Iterator it=set.iterator();
      while(it.hasNext()){System.out.println(it.next());
       }
    }
  }

【通过 java 的 equals()办法判断。如果有非凡需要须重载 equals()办法。】

list(列表):

次要实现类:

LinkedList:实现了链表构造,底层双向链表, 查问慢, 增删快;

ArrayList:可代表大小可变的数组;

底层是数组实现, 线程不平安, 效率高,查问比拟高, 增删效率低;

List 和 Set 的个性和区别:

1)首先 list 和 set 都是单列汇合;

2)list 外面的元素是有序的可反复的;

3)set 汇合外面的元素是无序的不可反复的;

4)list 汇合能够依据下标获取对应的元素,而 set 则只能遍历全副汇合能力获取对应的元素;

退出移动版