面试题-集合

1.JAVA 中数组和集合的区别 ?

(1)数组的长度是固定的,而集合长度是可以改变的。

(2)数组可以储存基本数据类型和引用数据类型,而集合只能储存引用数据类型(也就是对象)。

(3)定义数组时必须指出数组元素的类型,而集合默认其中所有元素的类型都是 Object 类型的。

2.Collection 和Collections 的区别 ?

(1)Collection 是集合类的上级接口,继承于它的接口主要有 Set 和 List。

(2)Collections 是集合类的一个帮助类,它提供一系列静态方法实现对集合的搜索、排序、线程安全化等操作。

3.List 和 Set 的区别 ?

(1)List 是有序的可重复的集合,而 Set 是无序的不可重复的集合。

(2)List 允许插入多个 Null 值,而 Set 只允许包含一个 Null 值。

4.ArrayList 和 LinkedList 和 Vector 的区别 ?

(1)ArrayList 和 Vector 都是基于动态数组实现的,查询和修改数据快,而插入和删除数据慢,ArrayList 是线程

不安全的,Vector 是线程安全的,所以 Vector 的性能比 ArrayList 的性能差。

(2)LinkedList 是基于双向链表实现的,插入和删除数据快,而查询和修改数据慢。

5.HashTable 和 HashMap 的比较 ?

(1)HashTable 是线程安全的,而 HashMap 是线程不安全的。

(2)HashTable 不允许有 Null 值 (key 和 value 都不可以为 Null),而 HashMap 允许有 Null 值 (key 和 value 都

可以为 Null)。

(3)HashTable 和 HashMap 的遍历方式差别不大,HashTable 仅仅比 HashMap 多了一个 elements 方法。

6.HashMap 和 ConcurrentHashMap 区别 ?

(1)HashMap 是线程不安全的,而 ConcurrentHashMap 是线程安全的。

(2)HashMap 不支持线程同步,而 ConcurrentHashMap 采用分段锁来实现线程同步,类似于多个

HashTable。

7.HashSet 和 TreeSet 的区别 ?

(1)HashSet 是由一个 hash 表来实现的,所以它的元素是无序的。TreeSet 是由一个树形的结构来实现的,所

以它的元素是有序的。

(2)HashSet 的元素可以为 Null,且只能有一个为 Null,而 TreeSet 的元素都不能为 Null。

(3)HashSet 底层是通过 HashMap 实现的,而 TreeSet 底层是通过 TreeMap 实现的。

8.HashTable 和 HashMap 底层实现原理 ?

(1)HashTable 底层实现原理是基于数组 + 链表,默认长度是11,扩容以后长度是 2n + 1。

(2)HashMap 的底层原理:JDK1.7 是数组 + 链表,JDK1.8 是数组 + 链表 + 红黑树,默认长度是16,扩容以后

是两倍 32,线程不安全,效率高。

9.HashMap 和 LinkedHashMap 的区别 ?

(1)HashMap 是无序的,HashMap 允许多条记录的值为 Null,但是最多只允许一条记录的键为 Null。

(2)LinkedHashMap 是 HashMap 的子类,是基于 HashMap 和双向链表来实现的, LinkedHashhMap 是有序

的, 它可以保证 HashMap 集合有序,存入的顺序和取出的顺序是一致的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七牛云上传视频如何有效做到节省空间

在上传视频的时候,我们通常会保存到第三方【七牛云】平台。不过大多数程序员在系统后台上传视频后,一般都是保存到了本地,如果视频非常多或者视频容量特别大的情况下,那么我们的服务器迟早有一天会满,为了节省空间&…

运算符的优先级总能起作用吗?

有关运算符优先级的规则稍微有点复杂。在大多数情况下,这些规则确实是你所需要的,然而,有人也指出其中的一些规则本来是可以设计得更好的。让我们快速地回顾一些有关内容:“运算符优先级”是这样一些规则的集合——这些规则规定了…

按钮交互loading ---- 转圈圈 加载

按钮loading状态自定义选项(功能): 可以在元素上添加 data-am-loading 来设置选项: spinner 加载动画图标,适用于支持 CSS3 动画、非 input 元素,写图标名称即可;loadingText 加载时显示的文字&…

面试题-线程

1.什么是线程 ?线程和进程的区别 ? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。而进程是系统中 正在运行的一个程序,程序一旦运行就是进程。 区别:&#xf…

区块链入门教程

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是&#xf…

响应式面包屑菜单

在线演示 本地下载 转载于:https://www.cnblogs.com/qixidi/p/10064991.html

5个能提高你工作效率的Excel技巧

Excel的应用在工作中还是十分广泛的,那么下面小编就来为大家分享5个Excel技巧来帮助大家轻松提高工作效率。1. 不用数据验证或数据有效性,自动生成下拉列表方法:按【Alt↓】组合键注意点:光标要定位在已有数据区域的下一个单元格&…

很好的推荐书籍

五百本编程书籍推荐【信息化类】 书号书名作者出版时间定价对应页码TP02041企业资源计划(ERP)教程罗鸿2006-1¥28.00—TP02031ERP理论、方法与实践周玉清 等2005-12¥39.00—TP01059ERP原理设计实施(第3版)罗…

消息推送

我有一个运动类app软件,它的服务器是集群式的,有N台服务器。现在我想在app上开发一个功能,在每天的晚上11点进行消息推送,他会推送今天走多少步,是否健康,明天至少走多少步。请问如何11点能准时触达到用户?…

day10:函数进阶

1,函数的命令空间(内置命名空间,全局命名空间,局部命名空间),内置大于全局大于局部 2,内置命名空间,就是Python解释器一启动就可以使用的名字,存储在内置命名空间中&…

mysql导入source注意点

mysql的导入导出要注意字符集,防止查询乱码! 导入前设置字符集 set names utf8; //导入指定编码source /xxx.sqlcommit;

哔哩哔哩修改视频速度

按住f12,打开控制台,先输入 const video document.querySelector("video"); video.play() // 开始 video.pause() // 暂停 video.playbackRate3 // 三倍速

编译预处理

C语言编译中,什么时候应该使用32位编译程序? 32位编译程序应该在32位操作系统上使用。由32位编译程序生成的32位程序比16位程序运行得更快,这正是任何32位的东西都很热门的原因。有那么多不同版本的Microsoft Windows,它们和哪种编译程序组成…

去除List集合中的重复值(四种好用的方法)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list…

jQuery---过滤选择器

4、过滤选择器 过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS 中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则, 过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过…

安装Frida抓包工具

curl https://bootstrap.pypa.io/get-pip.py | python3 pip install frida pip install frida-tools

正则介绍_grep

2019独角兽企业重金招聘Python工程师标准>>> 10月16日任务 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 grep基本用法 grep [-cinvABC] word filename centos7.x版本的grep实则为grep --colorauto-c 显示匹配到的行数[rootlocalhost ~]# cp /etc/passwd /tmp [rootl…

[国家集训队]middle

嘟嘟嘟 有谁能想到这题会用到主席树呢?(不愧是WJMZBMR出的题) 首先考虑如果区间是固定的话,中位数该怎么求。 没错,二分。如果大于当前二分值\(mid\)的数比小于\(mid\)的数多,说明\(mid\)还可以再变大&…

Java List<Object>去掉重复对象-java8

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 public List<String> removeStringListDupli(List<String> stringList) {Set<String> set new LinkedHashSet<&g…

Vue + webpack 项目配置化、接口请求统一管理

准备工作 需求由来&#xff1a; 当项目越来越大的时候提高项目运行编译速度、压缩代码体积、项目维护、bug修复......等等成为不得不考虑而且不得不做的问题。 又或者后面其他同事接手你的模块&#xff0c;或者改你的bug时避免人家看的眼痛以及心里千百句mamaipi...问候。 并且…