Java集合:ListSet和Map的区别,ArrayList和LinkedList有何区别..........

Posted wang-java-begining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合:ListSet和Map的区别,ArrayList和LinkedList有何区别..........相关的知识,希望对你有一定的参考价值。

一、数组和集合的区别:

  数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型);

  集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。

  数组和集合相比唯一的有点就是速度快。

二、Java集合分类:

  1.Collection(接口):派生的两个子接口:List和Set

    List(列表):有序可重复元素,可以插入多个null元素。实现List接口的常用有LinkedList,ArrayList,Vector和Stack。

 

    Set(集):序、不可重复元素,最多有一个null元素。

  2.Map(映射):不是collection的子接口或者实现类,Map是一个接口。Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap

三、几个重要区别

  1. List、Set和Map的区别

     List:有序、可重复元素,可以插入多个null元素。

     Set:无序、不可重复元素,最多有一个null元素。

     Map:集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象值对象可以重复。它的有些实现类能对集合中的键对象进行排序。

  2.ArrayList和LinkedList的区别?  

      (1). ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。   

    (2). 对于随机访问get和setArrayList觉得优于LinkedList,因为LinkedList要移动指针。   

    (3). 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

   3.HashTable和HashMap的区别?

    (1). HashTable:继承自Dictionary类,不接受为null的键值(key)和值(value),线程安全  

    (2). HashMap:继承自AbstractMap类,可接受为null的键值(key)和值(value),线程不安全   

 

      



以上是关于Java集合:ListSet和Map的区别,ArrayList和LinkedList有何区别..........的主要内容,如果未能解决你的问题,请参考以下文章

java中ListSet和Map三个接口

Java全栈JavaSE:20.集合之CollectionIterator迭代器ListSet

Day12Java基础学习笔记

java 迭代器遍历ListSet和Map

Java集合复习 —— ListSet和Queue

JAVA集合以及面试题