zoukankan      html  css  js  c++  java
  • Java中集合关键字的区别

     

    1、 ArrayList、Vector和Stack有什么区别?

       1、ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样) 

       2、Stack继承了Vector,两者的方法都是线程安全,ArrayList没有考虑线程的问题 

       3、vector速度慢,ArrayList做了优化,效率更高

     

    2、 ArrayList 和 LinkedList 的区别?

        1、 ArrayList底层是数组的实现,linkedList地层是连接的实现(简:数据结构不同)

               1.1在java中链表就是自己实现一个类,在类中记录了前一个和后一个的地址,每次查找都需要找到前一个或后一个才能往前或者往后找 

         2、ArrayList查找速度快,删除和插入速度慢 (常用)

         3、LinkedList查找速度慢,删除和插入速度快

         4、LinkedList有自己独有的方法:addFirst() addLast() removeLast() removeFirst()。(首尾重要)

    3、set和List的区别?

    ① set接口下的集合特点:

        1、没有下标 

    ​    2、无序的 

        3、不能重复(前面的被后面的覆盖)

    ② List接口下的集合特点:

        1、有下标 

        2、有序的(按照添加的顺序获取)

    ​    3、可以重复

    set转list:

    List< 类名 > list = new ArrayList< >( set类 );

     

     

    4、collections 和collection的区别?

    collections是java.util下的工具类,其下有 set 及 list;

    collection是java.util下的接口;

     

    5、HashSet 和TreeSet的区别?

    HashSet不可以排序

    TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法

     

    1、HashSet(hashset比较是否相等,根据两个对象的哈希值)

    1、HashSet不可以排序

      1)、add()--- 添加元素,会先判断是否为同一对象。出于业务上的考虑我们需要重写HasgCoda方法和equals方法,来判断两个对象是业务上的相等;

      2)、remove(Object o)--- 将元素从集合中移除 3)、size()---查看集合长度;

     

    HashSet特点:

     1)、遍历时没有顺序;

     2)、允许包含null ;

     3)、类中不允许出现重复元素;

     4)、不能有for循环遍历能用foreach或while循环遍历;

     

    2、TreeSet 

    1、TreeSet可以排序(但是他是用自己的一种方排序规则排序),实现自定义类的排序时必须实现Compare接口的compareTo方法

       1)、first()----返回第一个元素 

       2)、last()----返回最后一个元素

       3)、pollLast()---删除最后一个元素

       4)、pollFirst()---删除第一个元素

    1、使用外部比较器对TreeSet中的元素进行排序,外部比较器作为TreeSet的构造方法参数传递过去。

     2、使用外部比较器,我们自定义的类可以不用实现CompareTo

     

    3、Hash的优缺点:

    优点:删,增、查很快,提高存储率

    缺点:无序,不可重复

     

     

    6、Comparable和Comparator的区别?

      Comparable在java.long包;

      Comparator在java.util包;

     


     

    7、集合和数组的区别?

    ①、数组创建长度固定,集合长度会随集合元素的添加自动扩展。

    ②、集合中只能存放对象的引用,而数组可以有基本类型,也可以有引用类型。

    ③、集合中的算法更加丰富,使用集合操作数据会比数组简洁。

  • 相关阅读:
    ARM指令集----寻址方式
    [js] 实现接口
    sublime自定义配置
    [javascript] postmessage
    [javascript] visible - 待写
    [读书笔记]24个比利
    解决div里面img的缝隙问题(转)
    【JAVASCRIPT】React + Redux
    【JAVASCRIPT】React 学习
    代理
  • 原文地址:https://www.cnblogs.com/suger-4/p/12003159.html
Copyright © 2011-2022 走看看