Java中什么是集合,java集合类是什么意思

  Java中什么是集合,java集合类是什么意思

  java中集合的区别是什么?

  在java中,集合主要分为列表、集合和映射三种,其中列表和集合是从集合继承而来的,而映射不是。

  List和Set的区别:List中的元素有存储顺序,可以存储重复的元素,检索效率高,插入和删除效率低。集合没有存储顺序,不能存储重复的元素。后面的元素会替换前面的重复元素,导致检索效率低,插入和删除效率高。(集合的存储位置是由其HashCode代码决定的,所以它存储的对象必须有equals()方法,集合遍历因为没有下标只能迭代。)

  1、最常用的集合:ArrayList

  特点:ArrayList集合中存储元素的位置是连续的,所以查询起来会比较快,但是执行插入和删除操作会有点麻烦,会引起其他元素位置的变化。

  注意:对象的引用存储在列表中,而不是对象本身。如果这个不清楚,这里会有一个坑,比如:

  为了节省优化代码和虚拟机内存,有人会这样写代码:

  ListListString list=new ArrayList();

  ListString list 2=new ArrayList();

  for(int I=0;i10i ){

  list 2 . add( I );

  list . add(list 2);

  list 2 . clear();

  }虽然这种写法可以被一个对象重用,但是,list存储的是对象的引用,当list 2 . clear();列表中的list2也会被清空,这样最后的结果只能是一堆空集合。

  2、与最常用集合相反的集合:LinkedList

  LinkedList和ArrayList是互补的,所以ArrayList的优点是LinkedList的缺点,ArrayList的缺点是LinkedList的优点。

  特点:LinkedList中元素的位置是任意的,所以插入和删除效率高,查询效率低。

  3、与一般集合都相反的集合:Vector

  为什么和一般的设定相反?因为是老的动态数组,很多方法都是用synchonized修饰的,所以是线程安全的,而一般的集合是线程不安全的。

  特点:多线程同时访问不会产生不确定的结果,但是效率会低。如果要考虑线程安全,可以使用它。

  4、Set中最常用的集合:HashSet

  在使用Set set的时候,我几乎都是使用HashSet,通过使用哈希表来实现。集合中的元素顺序错误,可以有空值,但不能有重复的元素。

  特性:因为相同的元素有相同的hashCode,所以不能有重复的元素。

  5、Set中第二常用的集合:TreeSet

  TreeSet是通过二叉树结构实现的集合。

  特点:集合中的元素是有序的,所以不允许null,也不允许重复的元素。

  6、第二常用的集合:HashMap

  经常有需要使用键值对存储的场景,HashMap是最常用的一组键值对存储。

  特点:HashMap允许空键值,而且是非线程安全的,所以插入、删除、定位元素会更快。

  7、一些不太常用的Map集合:TreeMap,HashTable

  Trep基于红黑树,适合以自然顺序遍历key。

  HashTable是基于HashCode实现的,但它是线程安全的,所以效率会比HashMap低,而且不允许空值。

  推荐教程:java教程以上是Java中集合的区别?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: