java 集合特性面试必备
collection
- 数据结构栈和队列
栈结构 :先进后出
队列结构 :先进先出 - 数据结构之数组和链表
数组结构:查询快、增删慢
队列结构 :查询慢、增删快
- List集合概述
有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素;
与Set集合不同,列表通常允许重复的元素; - List集合特点
有索引;
可以存储重复元素;
元素存取有序 ;
list
q:集合中存放的是什么类型?
引用类型 存的不是对象,而是对象的引用类型,存入int型的也会自动装配成integer
q:ArrayList和linkedList区别?
ArrayList特点:结构实现,查询慢、增删快
linkedList特点: 底层是链表结构实现,查询慢、增删快
set
- hashSet集合的特点
元素存取无序
没有索引、只能通过迭代器或增强for循环遍历,不能存储重复元素
哈希值 :是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
- TreeSet集合概述
元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法
TreeSet():根据其元素的自然排序进行排序
TreeSet(Comparator comparator) :根据指定的比较器进行排序
没有带索引的方法,所以不能使用普通for循环遍历
由于是Set集合,所以不包含重复元素的集合
Q: hashset 和Treeset 的区别是?
hashset 基于哈希表实现,无序,不重,可以放入一个null值
treeset 基于二叉树实现,有序,不重, 不允许为空
Q:HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。
Q:TreeSet是如何保证元素唯一性的呢?
底层数据结构是二叉树,使用二叉树的compareTo方法return 0.
Q:Comparable和Comparator区别?
Comparator位于包java.util下需要元素对象实现Comparable接口,覆盖compareTo方法
Comparable位于包 java.lang下Comparable,需要元素对象实现Comparable接口,覆盖compareTo方法。
Q:List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素;
Set 无法拥有重复元素,内部排序(无序);
Map 保存key-value值,value可多值。
map
- Map集合概述
interface Map<K,V> K:键的类型;V:值的类型
- Map集合的特点
键值对映射关系
一个键对应一个值
键不能重复,值可以重复
元素存取无序
Q: HashMap和Hashtable的区别?
Hashtable是线程安全的 不可以存入null键null值
HashMap线程不安全 可以存入null键null值
java 集合特性面试必备的更多相关文章
- 【转】Java集合框架面试问题集锦
Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题.很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性.下面是面试Java核心技术的一些很实用的问题. Q:最常见的 ...
- 基础篇:JAVA集合,面试专用
没啥好说的,在座的各位都是靓仔 List 数组 Vector 向量 Stack 栈 Map 映射字典 Set 集合 Queue 队列 Deque 双向队列 关注公众号,一起交流,微信搜一搜: 潜行前行 ...
- Java集合框架面试题目
1.为什么Map接口不继承Collection 接口? Set是无序集合,并且不允许重复的元素 List是有序的集合,并且允许重复的元素 而Map是键值对 它被视为是键的set和值的set的组合 Ma ...
- Java集合框架 面试问题整理
简介 java集合类是java.util 包中的重要内容.java集合框架包含了大量集合接口以及这些接口的实现类和操作他们的算法. java集合框架图 主要提供的数据结构 List 又称有序的Coll ...
- Java程序员面试必备:Volatile全方位解析
前言 volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~ 1.volatile的 ...
- Python/Java程序员面试必备常用问题解析与答案
转自AI算法联盟,理解python技术问题,以及一些常见的java面试中经常遇到的问题,这些面试问题分为四类: 是什么(what) 如何做(how) 说区别/谈优势(difference) 实践操作( ...
- java集合框架面试要点整理
- 【新手向】如何学习Java集合
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 如果认识我的同学可能就知道,我已经写过很多系列级 ...
- Java提高班(四)面试必备—你不知道的数据集合
导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧! Java中的集合通常指的是Collection下的三个集合框架List. ...
随机推荐
- String,String Builder,String Buffer-源码
目录 String 源码分析 常用的API isEmpty() length() charAt() substring() equals() equals()与"==" inter ...
- Hadoop 3.1.1 - 概述 - 单节点安装
Hadoop: 单节点安装 目标 本文描述了如何安装和配置单机的 Hadoop,这样你可以使用 Hadoop MapReduce 和 Hadoop 分布式文件系统(HDFS)快速地尝试简单的操作. 前 ...
- 【LeetCode】81. 搜索旋转排序数组 II
81. 搜索旋转排序数组 II 知识点:数组,二分查找: 题目描述 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 ...
- 记录21.07.22 —— Vue.js基础(一)
VUE基础 语雀课件地址 Vue.js框架 Vue中文文档 Vue.js 创建vue项目 ①在一个空项目中引入vue的js文件 <script src="https://cdn.jsd ...
- Calcite(一):javacc语法框架及使用
是一个动态数据管理框架. 它包含许多组成典型数据库管理系统的部分,但省略了存储原语.它提供了行业标准的SQL解析器和验证器,具有可插入规则和成本函数的可自定义优化器,逻辑和物理代数运算符,从SQL到代 ...
- python中map()和reduce()的使用
map() 会根据提供的函数对指定序列做映射.map(function, iterable, ...)Python 3.x 返回迭代器.print(map()) 返回迭代器地址一般和list一起用 才 ...
- appium自动化测试(4)部分方法&unitest初步使用
捕捉弹窗 https://github.com/appium/appium/issues/968完整有截屏的例子:https://github.com/bitbar/testdroid-samples ...
- 35岁Android程序员被阿里辞退,生活压力太大痛哭,中年危机如何自救?
多数人都喜欢安逸的生活,尤其是随着年龄的增长,很多人都希望工作和生活趋于稳定,不愿意再让生活有很大的变动.可是,当达到一定的年龄时,危机还是存在的. 之前有一位阿里员工在脉脉上,晒出了自己被辞退的经历 ...
- Java 常用类库与技巧【笔记】
Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...
- 为何要打印日志?C++在高并发下如何写日志文件(附源码)?
为何要打印日志?让程序裸奔不是一件很快乐的事么? 有些BUG就像薛定谔的猫,具有波粒二象性,当你试图去观察它时它就消失了,当你不去观察它时,它又会出现.当你在测试人员面前赌咒发誓,亲自路演把程序跑一遍 ...