1.Java中常见的集合及其关系?

2.ArrayList、LinkedList、Vector的区别?

1. LinkedList、ArrayList、Vector都是List接口的子类;LinkedList基于双向链表实现,ArrayList、Vector基于数组实现。

2. ArrayList采用懒加载模式,在第一次添加元素时,初始化内部数组,初始大小为10,扩容大小为原先为1.5倍,采用异步处理,线程不安全,性能较高,在大部分场景下适用。

3. Vector在产生对象时,初始化一个大小为10的内部数组、扩容为原先的2倍,采用synchronized修饰常用的crud方法,线程安全,性能较低(读读互斥)。

4. ArrayList和LinkedList由于实现原理的不同(双向链表和数组),常见的插入删除在尾部时使用ArrayList比较快,在指定位置的时候使用LinkedList。

3.通过Collections.SynchornizedList、Vector的区别?

1. 通过Collections.synchronizedList()方法可以将线程不安全的List转成线程安全的List。

2. Collections.SynchronizedList使用了委托(delegation),实质上存储使用的是构造时传入的list,只是将list作为底层存储。Collections.SynchronizedList使用synchronized代码块对mutex对象加锁,mutex对象可以通过构造函数传入,也就是可以指定锁定的对象。

3. Vector则是对整个方法使用了synchronized,所以不能对同步进行细粒度的控制。而且同步方法加锁的是this对象,没办法控制锁定的对象。

4. 由于Collections.SynchronizedList比Vector多了一层封装,所以Vecgor比Collections.SynchronizedList的效率略高。

4.Set和List的区别?

1. List允许插入重复的元素,Set不允许重复元素。

2. List是有序集合,会保留元素插入时的顺序,Set是无序集合。

3. List可以通过下标来访问,Set不能。

5.Set是如何保证元素不重复的?

Set根据实现方式主要分为两大类,HashSet和TreeSet。

1. HashSet是由哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复,就如数据库中唯一约束。

2. TreeSet是由二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值。

6.Collection和Collections的区别

1. java.util.Collection是一个集合接口(集合类的顶级接口)。提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。

2. Collections则是集合类的一个工具类,提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

7.Arrays.asList获得的List使用时有什么需要注意的?

1. 在使用Arrays.asList()后调用add,remove这些method时出现java.lang.UnsupportedOperationException。因为Arrays.asList()返回的是java.util.Arrays$ArrayList而不是ArrayList。

2. Arrays$ArrayList和ArrayList都继承AbstractList,而remove,add等method在AbstractList中默认实现仅有`throw new UnsupportedOperationException();`而不做其他处理。ArrayList继承AbstractList后重写(override)了这些方法,而Arrays$ArrayList则是保留了默认实现抛出java.lang.UnsupportedOperationException。## 附言

* 转载请注明出处

* 更多文章,请关注公众号《百育科技》,公众号会定期按系列整理文章

java arraylist 初始化_Java面试整理-基础篇8.集合1相关推荐

  1. java如何把查到的对象集合放入 展示对象list中_Java面试整理-基础篇8.集合1

    1.Java中常见的集合及其关系? 2.ArrayList.LinkedList.Vector的区别? 1. LinkedList.ArrayList.Vector都是List接口的子类:Linked ...

  2. java list 初始化_Java面试大全(十)

    第五章 Java 的高级 1.说说你对 Java 中反射的理解 Java 中的反射首先是能够获取到Java 中要反射类的字节码,获取字节码有三种方法:1. Class.forName(classNam ...

  3. jqGrid 学习笔记整理——基础篇

    jqGrid 学习笔记整理--基础篇 jqGrid 实例中文版网址:http://blog.mn886.net/jqGrid/ 国外官网:http://www.trirand.com/blog/ 本人 ...

  4. Java面试基础篇之集合

    文章目录 你知道的集合都有哪些? 哪些集合是线程安全的? Collection 集合类和数组有什么不同? Collection和Collections有什么区别? 如何确保一个集合不能被修改? Lis ...

  5. 十一郎专栏 | java面试八股文-基础篇

    最近发现全网都在找八股文,看来最近面试的人真的很多. 铁汁们对于面试八股文的需求很大,但是资料是这里凑一点那里凑一点,不够系统化. 我根据自己的面试经验,以及拉了几个大佬+面试官讨论了一下,基础篇就出 ...

  6. java arraylist 构造_Java基础五:构造方法、ArrayList

    Java的构造方法 面向对象:属性和方法,当对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值 构造方法的格式: 修饰符 构造方法名(参数列表){方法体} 写法: 1.方法名与他所在 ...

  7. Java全链路复习面经-基础篇(2.5万字全文)

    序言 主要分为两篇,一篇基础篇,涵盖Java基础,数据库,JVM,计算机网络等知识 另一篇为框架篇,主要为流行框架,如Spring.SpringMVC.Mybatis.SpringBoot.Sprin ...

  8. 资料搜集-JAVA系统的梳理知识5-JAVA基础篇JVM

    <!-- TOC -->- [Collections 工具类和 Arrays 工具类常见方法](#collections-工具类和-arrays-工具类常见方法)- [Collection ...

  9. SpringBoot系统整理|基础篇|黑马视频

    写在前面:很早之前看了狂神的springboot快速入门,后来发现还是有很多开发知识点需要补充学习.乘着假期,将基础篇.运维实用篇.开发实用篇.原理篇一口气学习巩固,再次记录下学习笔记.系列笔记在sp ...

最新文章

  1. linux搭建vsftpd虚拟用户访问
  2. python3 redis操作 错误 cannot import name 'StrictRedis' from 'redis'
  3. Javascript数组操作方法
  4. android手势滑动——左右滑动效果实现
  5. [Dubbo实战]dubbo + zookeeper + spring 实战 (转)
  6. Qt Creator在外部应用程序上运行Valgrind工具
  7. Oracle查看死锁 .
  8. elasticsearch客户端介绍
  9. 快速上手sqlserver profiler
  10. 学习Raft算法的笔记
  11. 论文浅尝 - ACL2020 | 一种用于关系三元组提取的级联二进制标记框架
  12. 固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)理解和技巧归纳
  13. JS Math对象(算数、四舍五入、随机数)
  14. 前端开发在uc浏览器上遇到的坑
  15. Python(四):字符串
  16. 信号系统与数字信号处理一点点心得
  17. 富士康计划豪掷4000万美元投资美国制造业
  18. display的contents属性
  19. 终于放假咯~寒假规划
  20. 国产折叠屏手机:华为领航,跟随者众

热门文章

  1. Linux信号实践(4) --可靠信号
  2. Objective-C初学者指南(第2版)
  3. MySQL超简单安装方法,一条命令就搞定
  4. Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
  5. android中如何执行java命令
  6. mysql增备脚本--xtrabackup实现
  7. 信息学奥赛一本通 1064:奥运奖牌计数 | OpenJudge NOI 1.5 07
  8. 信息学奥赛一本通(1135:配对碱基链)
  9. 生日蛋糕(信息学奥赛一本通-T1441)
  10. C++语言基础 —— STL —— 容器与迭代器