一、实例化数组后,能不能改变数组的长度?

不能,数组一旦实例化,他们的长度就是固定的。

二、List、Set、Map的区别?

List中的元素:有序,可重复、可为空

set中的元素:无序、不可重复,只有一个可以为空

Map中的元素:无序、键不重复,值可以重复,可一个空键,一个空值。

三、ArrayList和LinkedList有什么区别?

ArrayList:

底层是动态数组。

Arraylist的默认初始值大小为10,默认扩容大小为1.5倍。

查询快,增删慢

LinkedList:

底层是双向链表。

LinkedList将元素添加到链表的末尾,无需扩容。

增删快,查询慢。

四、如何对list集合进行去重?

1.借助于set集合

2.利用list集合的container方法进行循环遍历

五、数组和链表分别适用于什么场景,为什么?

数组:查询多,增删少,数组的特性

链表:查询少,增删多,链表的特性。

六、HashMap的底层结构?

HashMap的底层数据结构为数组+链表,在jdk1.8中当链表的长度超过8时,链表会转化为红黑树。

七、HashMap如何存储数据?

如果数组还没有初始化,就创建一个数组,默认长度时16.

将hashmap中的key值取出来,转化成hash值,然后对数组的长度进行取余操作,然后放在数组对应的位置上。

如果这个链表为空,直接插入。

如果链表时红黑树,而且元素是红黑树,则直接插入到其中。

如果是链表,则遍历链表,如果有相同的数值,则进行替换,否则直接插入到尾部。

如果链表的长度大于等于8,则直接转换为红黑树。

八、hashMap在1.7中和在1.8中的区别?

在1.7的时候,没有红黑树,1.8中引入新特性当链表的长度大于8的时候,会转换成红黑树。

在1.7的时候,插入元素,直接插入到头部,而在1.8的时候,是在尾部进行插入的。

扩容的时候,在1.7的时候,容易出现死循环,而1.8中就不会出现死循环。

九、HashMap和HashTable的区别?

HashMap:

非线程安全

允许由null值

HashMap默认初始化数组的大小为16,扩容时乘以2,使用位运算取得hash

hash特性等原因,所以效率比HashTable高。

HashTable:

线程安全

不允许由null值

hashTable默认初始值为11,扩容机制是乘以2+1,然后进行取模计算。

标签:黑树,面试题,java,HashMap,直接插入,链表,数组,集合,长度

来源: https://www.cnblogs.com/qingmuchuanqi48/p/13750558.html

java list 面试题_java【集合】面试题相关推荐

  1. java 关于集合的笔试题_Java集合面试题(一)

    1.Collection和Collections的差别 java.util.Collection 是一个集合接口,Collection接口在Java类库中有非常多详细的实现.比如List.Set ja ...

  2. Java 学习(21)--集合笔试题

    集合笔试题 1.产生10个1-20之间的随机数,要求随机数不能重复(List 和 Set 分别实现) 分析:1.创建一个 ArrayList 对象 2.如果 ArrayList 对象长度小于 10 3 ...

  3. java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet

    前两篇文章分别分析了Java的ArrayList和LinkedList实现原理,这篇文章分析下HashSet和LinkedHashSet的源码.重点讲解HashSet,因为LinkedHashSet是 ...

  4. java list取值_Java集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  5. java实习生面试题_java实习生面试题(含答案)

    1.Java容器框架有哪些? Java容器框架中有两个名称分别为Collection和Set的接口 2.list,map,set,array,它们有什么区别 (推荐学习:java实习生面试题) Lis ...

  6. java实习生面试题_java实习生面试题.doc

    java实习生面试题 [标签:标题] 实习生在面试Java岗位时,做好面试准备很重要,那么你了解面试题目了吗?下面阳光网小编已经为你们整理了java实习生面试题,希望可以帮到你. java实习生面试题 ...

  7. 测试开发java常见面试题_Java常见面试题200+,学习、面试必备

    本套Java面试题,选取了企业面试最常问到的问题,可以做为Java工程师的面试宝典,也可以做为想要不断完善和扩充自己 java 技术的学习者. 主要包含: Java 基础.容器.多线程.反射.对象拷贝 ...

  8. java机试 数据结构_Java数据结构面试题

    1.栈和队列的共同特点是(只允许在端点处插入和删除元素) 4.栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 5.下列关于栈的叙述正确的是(D) A.栈是非线性结构B.栈是一种树状结构C.栈 ...

  9. java综合面试题_JAVA 综合面试题 PDF 下载

    主要内容: Java面试题整理 Java面向对象 1. super()与this()的区别? This():当前类的对象,super父类对象.Super():在子类访问父类的成员和行为, 必须受类继承 ...

  10. JAVA工程师定向招聘_Java工程师面试题整理[社招篇]

    http://blog.csdn.net/jackfrued/article/details/44921941 1.面向对象的特征有哪些方面? 2.访问修饰符public,private,protec ...

最新文章

  1. 智能算法的应用记录一点点-----TSP 路径规划
  2. Linux的init进程(内核态到用户态的变化)
  3. 开放API接口 笑话、天气、新闻
  4. 线上应用故障排查之二:高内存占用
  5. 智慧城市资金瓶颈亟待突破
  6. 一款简洁大气的jquery日期日历插件
  7. 数据结构实验之二叉树八:(中序后序)求二叉树的深度
  8. get和post有什么区别
  9. 惠普omen测试软件,双GTX1080奢华魔方PC 惠普OMEN X评测
  10. Eclipse自动部署项目到Tomcat的webapps下的有效方法
  11. Java设计模式--抽象工厂模式
  12. 博文视点大讲堂25期——2天玩转单反相机
  13. 理论 - 平面倒F天线(PIFA)
  14. Hive窗口函数应用:级联累加求和场景
  15. 【考研数学】张宇1000题,汤家凤1800,李永乐660,应该怎么选择?
  16. python3爬取微博评论教程_python3爬取微博评论并存为xlsx
  17. CoreOS发起的友好兼容Kubernetes的存储系统:Torus
  18. mysql实验训练2 数据查询操作_实验训练2:数据查询操作
  19. 【Android】Android Window
  20. 根据体重和身高获取BMI值

热门文章

  1. 性能测试常用的软件有哪些,常用的正经CPU测试软件有哪些
  2. 怎么拿img标签的data_PASCAL VOC数据集-分割标签索引颜色对照及程序
  3. 软件工程(2019)结对编程第二次作业
  4. python之递归函数和内建函数
  5. 软件开发---全套规范
  6. mybatis_SQL映射(1)
  7. 帕金森定律(Parkinson's Law)
  8. “没有找到iliertutil.dll,因此这个应用程序未能启动。”文件拷贝 PE 或者 dos...
  9. 孙鑫MFC笔记之十四--多线程同步与异步套接字编程
  10. vue中this.$router.push()路由传值和获取的两种常见方法