zoukankan      html  css  js  c++  java
  • Java集合:List、Set和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),线程不安全   

     

          

  • 相关阅读:
    axios跨域问题(包括开发环境和生产环境)
    vue高亮一级、二级导航
    vue配置路由时报错 Error in render: "RangeError: Maximum call stack size exceeded"
    win10使用L2TP连接失败,报远程服务器未响应错误解决办法,亲测可用!
    pywinauto教程
    Python结合Pywinauto 进行 Windows UI 自动化
    Pywinauto自动化操作PC微信提取好友微信号
    Debian9 配置kali(xfce4、Metasploit、wireshark)
    Kali开启ssh
    从域环境搭建到域渗透
  • 原文地址:https://www.cnblogs.com/wang-Java-begining/p/9902632.html
Copyright © 2011-2022 走看看