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、集合和数组的区别?

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

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

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

Java中集合关键字的区别的更多相关文章

  1. Java中集合List,Map和Set的区别

    Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...

  2. java中ArrayList 、LinkList区别

    转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...

  3. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  4. java中==与equel的区别

    值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地 ...

  5. Java中集合的概述

    一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数 ...

  6. Java标识符和关键字的区别!java基础 java必学

    任何计算机语言都离不开标识符和关键字,那我们就来简单讲一下他们两者的区别,希望有助于大家的的理解!本篇文章干货满满,如果你觉得难懂的话可以看下高淇老师讲的Java300集的教学视频,分选集,深度剖析了 ...

  7. Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」

    Java中的关键字有哪些? 1)48个关键字:abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do. ...

  8. 深入分析Java中的关键字static

    在平时开发当中,我们经常会遇见static关键字.这篇文章就把java中static关键字的使用方法的原理进行一个深入的分析.先给出这篇文章的大致脉络: 首先,描述了static关键字去修饰java类 ...

  9. Java中的关键字 transient

    先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...

随机推荐

  1. linux命令详解之ls命令

    ls命令概述 ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似.当执行ls命令时,默认显示的只有非隐藏文件的文件名.以文件名进行排序及文件名代表的颜色显示.当不加参数时,默认列 ...

  2. 将Excel数据读入DataGridView

    OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Microsoft Excel ...

  3. Python 异常处理Ⅱ

    异常处理 捕捉异常可以使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try ...

  4. spring cloud禁止输出日志:ConfigClusterResolver : Resolving eureka endpoints via configuration

    springcloud的注册中心客户端会每隔一定时间向注册中心服务端发送心跳,用此来判断注册中心服务端是否运行正常. 这样导致不断进行日志输出,不便查看正常的业务日志输出. c.n.d.s.r.aws ...

  5. Java多线程和并发(八),synchronized底层原理

    目录 1.对象头(Mark Word) 2.对象自带的锁(Monitor) 3.自旋锁和自适应自旋锁 4.偏向锁 5.轻量级锁 6.偏向锁,轻量级锁,重量级锁联系 八.synchronized底层原理 ...

  6. SpringBoot项目中,获取配置文件信息

    1.在配置文件中设置信息,格式如下 wechat: mpAppId: wxdf2b09f280e6e6e2 mpAppSecret: f924b2e9f140ac98f9cb5317a8951c71 ...

  7. 4.JSP内置对象

    JSP内置对象,JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过 JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它起到了简化页面的作用. 在JSP中一 ...

  8. Tarjan求LCA胡乱写的板子 x

    首先Tarjan算法的基本思路: 1.任选一个点为根节点,从根节点开始. 2.遍历该点u所有子节点v,并标记这些子节点v已被访问过. 3.若是v还有子节点,继续搜索下去,否则下一步. 4.合并v到u上 ...

  9. Linux扩展swap分区

    一.将sda磁盘进行分区: 先查看sda磁盘已经使用了多少主分区,如下图所示,主分区已使用3个,所以应选择扩展分区: 二.再将扩展分区进行分区: 三.分区完成后执行partprobe使系统重新识别分区 ...

  10. web 多屏互动显示方案

    1 基于 local storage 实现的信息传递 相关插件 lsbridge.js https://github.com/krasimir/l... 且项目中有非常简单易懂的示例你需要了解的一些关 ...