lamda获取参数集合去空_JAVA集合框架知识

f1ca27320cae418df9ff68ead2879c90.png

3b144ce177126401edb967772a7e44ea.png

1. Vector用法和ArrayList区别

(1) Vector的特有方法有哪些?

void addElement(E obj) 将指定的组件添加到此向量的末尾,将其大小增加1。

(2) Vector与ArrayList的区别是什么?

①Vector的add()方法是同步方法,ArrayList的add()方法是非同步方法

②Vector扩容每次扩充1倍,ArrayList每次扩充0.5倍

③Vector是在调用构造方法时,直接初始化容量为10,ArrayList是在第一次调用添加方法时,初始化容量为10。

④Vector的版本时JDK1.0开始的,ArrayList是JDK1.2开始的

⑤Vector是线程同步的,安全性高,效率低,

ArrayList是线程非同步的,安全性低,效率高。

2. Map接口_HashMap_Hashtable的用法详解

(1) Map接口常用的方法有哪些?

①void clear() 从该地图中删除所有的映射(可选操作)。

②boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true 。

③boolean containsValue(Object value) 如果此地图将一个或多个键映射到指定的值,则返回 true 。

④Set<Map.Entry<K,V>> entrySet() 返回此地图中包含的映射的Set视图。

⑤V get(Object key) 返回到指定键所映射的值,或 null如果此映射包含该键的映射。

⑥boolean isEmpty() 如果此地图不包含键值映射,则返回 true 。

⑦Set<K> keySet() 返回此地图中包含的键的Set视图。

⑧V put(K key, V value) 将指定的值与该映射中的指定键相关联(可选操作)。

⑨void putAll(Map<? extends K,? extends V> m) 将指定地图的所有映射复制到此映射(可选操作)。

⑩V remove(Object key) 如果存在(从可选的操作),从该地图中删除一个键的映射。

a.default boolean remove(Object key, Object value) 仅当指定的密钥当前映射到指定的值时删除该条目。

b.default V replace(K key, V value) 只有当目标映射到某个值时,才能替换指定键的条目。

c.int size() 返回此地图中键值映射的数量。

d

(2) HashMap与Hashtable的异同是什么?

①版本不同HashMap JDK1.2 Hashtable 1.0

②HashMap继承了AbstractMap,实现了Map接口,Hashtable继承了Dictionary实现Map接口。

③HashMap允许null值和null键,但是null作为key只允许一个,Hashtable非null的键和值。

④HashMap是线程不同步的(效率高,安全性低),Hashtable(效率低,安全性高)线程同步。

3. HashMap的底层原理

(1) HashMap的底层数据结构是什么?

散列表

(2) 简述哈希表的去重原理?

调用equals(…)方法比较元素的内容是否相同,如果相同则不再向链表中添加元素。

1. 二叉树和红黑树

(1) 简述树的概念和特征?

树的概念:由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系为父子关系。

树的特征:父子关系在树的结点之间建立了一个层次结构。树的结点包含一个数据元素及若干指向其子树的若干分支。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或简称为树根。

(2) 什么样的树被称为红黑树?

①红黑树是平衡二叉树的一种。平衡二叉树:每个结点的平衡因子都为1,-1,0的二叉排序树,或者说每个结点的左右子树的高度最多差1的二叉排序树。由于红黑树也是二叉查找树,它们当中每一个节点的比较值都必须大于或等于在它的左子树中的所有节点,并且小于或等于在它的右子树中的所有节点。这确保红黑树运作时能够快速的在树中查找给定的值。

②红黑树的每个节点上都有存储位表示结点的颜色,可以是红或黑。

③每个叶子节点(NIL)是黑色。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

④如果一个节点是红色的,则它的子节点必须是黑色。

⑤从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

2. TreeMap的使用和底层实现

(1) TreeMap的常用构造方法有哪些?

①TreeMap() 使用其键的自然排序构造一个新的空树状图。

②TreeMap(Comparator<? super K> comparator)

构造一个新的,空的树图,按照给定的比较器排序。

③TreeMap(Map<? extends K,? extends V> m)

构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的 自然顺序进行排序 。

④TreeMap(SortedMap<K,? extends V> m)

构造一个包含相同映射并使用与指定排序映射相同顺序的新树映射。

(2) TreeMap的底层数据结构是什么?

红黑树

3. Set接口_HashSet的用法

(1) Set集合存储元素的特征?

唯一,无序。

(2) Set接口常用的子类有哪些?

HashSet,LinkedHashSet,TreeSet

4. HashSet底层实现_JDK源码分析

(1) HashSet的底层数据结构概念?

哈希表,也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。由数组+单向链接组成其数据结构。

(2) HashSet与HashMap的关系?

底层都是用散列表作为数据结构实现的容器类,一个实现了Set接口,一个实现Map接口。两者不同在于:

*HashMap*

*HashSet*

HashMap实现了Map接口

HashSet实现了Set接口

HashMap储存键值对

HashSet仅仅存储对象

使用put()方法将元素放入map中

使用add()方法将元素放入set中

HashMap中使用键对象来计算hashcode值

HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false

HashMap比较快,因为是使用唯一的键来获取对象

HashSet较HashMap来说比较慢

5. TreeSet的使用_JDK源码分析

(1) TreeSet的底层数据结构是什么?在存储自定义元素时是通过什么方式去掉重复元素的?

红黑树。通过内部或者外部比较器实现comparator接口,compare()方法来去重。

(2) TreeSet集合的特点?

有序(升序),唯一。

6. 泛型

(1) 为什么需要泛型?使用泛型的好处有哪些?

在JDK1.4以前类型不明确:装入集合的类型都被当做Object对待,从而失去自己的实际类型。从集合中取出时往往需要转型,效率低,容易产生错误。

好处:增强程序的可读性和安全性。

(2) 泛型分几类,分列举例说明?

①泛型类 public class Myclass<T>{}

②泛型接口 public interface MyInterface<T>{}

③泛型方法public viod Mymethod(){}

7. 泛型的高级使用_容器中使用泛型

(1) 泛型的高级应用分为哪两类?

①泛型的上限:使用关键字 extends,表示参数化的类型可能是 所指定的类型或者是此类型的子类

②泛型的下限:使用关键字 super 进行声明,表示参数化的类型 可能是所指定的类型,或者是此类型的父类型,直至 Object 类

(2) 泛型的上限指的是什么含义,请举例说明?

泛型的上限:使用关键字 extends,表示参数化的类型可能是 所指定的类型或者是此类型的子类

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

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

相关文章

阿里云ECS服务器多种实例规格如何选择

一、什么是 ECS 云服务器ECS&#xff08;Elastic Compute Service&#xff09;是一种简单高效、处理能力可弹性伸缩的计算服务。 二、常见的几种实例规格 &#xff11;、个人类 &#xff08;1&#xff09;突发型&#xff08;t5、t6&#xff09; 特点&#xff1a;性能基线和积…

Blazor学习之旅(2)第一个Blazor应用

【Blazor】| 总结/Edison Zhou大家好&#xff0c;我是Edison。最近在学习Blazor做全栈开发&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。本篇我们来构建第一个Blazor Web应用&#xff0c;…

《深入理解Hadoop(原书第2版)》——2.6本章小结

本节书摘来自华章计算机《深入理解Hadoop&#xff08;原书第2版&#xff09;》一书中的第2章&#xff0c;第2.6节&#xff0c;作者 [美]萨米尔瓦德卡&#xff08;Sameer Wadkar&#xff09;&#xff0c;马杜西德林埃&#xff08;Madhu Siddalingaiah&#xff09;&#xff0c;杰…

HTTP与服务器的四种交互方式

Http定义了与服务器交互的不同方法&#xff0c;最基本的方法有4种&#xff0c;分别是GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。URL全称是资源描述符&#xff0c;我们可以这样认为&#xff1a;一个URL地址&#xff0c;它用于描述一个网络上的资源&#xff0c;而H…

ubuntu 以太网已连接但是无法联网_工业以太网有多“牛X”?两个案例告诉你

现代生活中&#xff0c;工业以太网发挥的作用愈来愈重要。为增进大家对工业以太网的认识&#xff0c;本文将基于3方面介绍工业以太网&#xff1a;何为工业以太网物理层&#xff1f;工业以太网具有哪些优势&#xff1f;工业以太网两大方案介绍。如果你对工业以太网具有兴趣&…

高可用架构可行性方案

一、动静分离 把静态的&#xff0c;耗费大量带宽资源、请求资源的数据独立出来&#xff0c;缓存到cdn里去&#xff0c;包括产品详情页&#xff0c;图片、视频、js、css通通打包放到cdn里去&#xff0c;封住一部分流量&#xff0c;用cdn去承担。 二、热数据预热缓存 将一些热点数…

SublimeText 自带格式化代码功能

其实sublime自身就有格式化命令&#xff0c;就不再安装插件&#xff0c;位置在[Preferences]->[Key Bindings]->[User]中, 中文版的位置在 [首选项]->[按键绑定-用户]&#xff0c;弹出的页面中 &#xff0c;添加如下代码&#xff0c;为其设置快捷键&#xff1a;Ctr…

http服务详解(1)——一次完整的http服务请求处理过程

前言&#xff1a;要熟练掌握一个服务&#xff0c;首先需要非常了解这个服务的工作过程&#xff0c;这篇就详细解释了http服务的请求处理过程。 一次完整的http请求处理过程 &#xff08;1&#xff09;流程图 &#xff08;2&#xff09;过程详解 0、DNS域名解析&#xff1a;递归…

线程管理(九)使用本地线程变量

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第一章&#xff0c; 作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;郑玉婷 校对&#xff1a;方腾飞 使用本地线程变量 并发应用的一个关键地方就是共享数据。这个对那些扩展Thread类或者实现Runnable接…

5训练需要更改参数吗_糖尿病病人需要多喝水吗?多喝水的5大好处,了解一下...

糖尿病是典型的慢性疾病&#xff0c;需要在生活中多加讲究&#xff0c;从各方面进行预防&#xff0c;其中喝水也是非常重要的一项调控方法。这就与糖尿病影响到患者的代谢功能有一定的关系&#xff0c;如果能够保持良好的饮水习惯&#xff0c;就可以有效解决糖尿病带来的影响。…

wordpress搭建博客 主题推荐 2019

一、generatepress2.14 主页&#xff1a; 详情页&#xff1a; 二、 Astra 主页&#xff1a; 详情页&#xff1a; 三、Bstone 主页&#xff1a; 详情页&#xff1a; 四、Hestia 主页&#xff1a; 详情页&#xff1a; 五、Rife free 主页&#xff1a; 详情页&#xff1a;

Blazor学习之旅(1)初步了解Blazor

【Blazor】| 总结/Edison Zhou九月以来在学习Blazor做全栈开发&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。作为第一篇&#xff0c;我们先来了解一下这个Blazor到底是个什么鬼。什么是Bl…

英国如何推动分享经济的发展?

——基于英国“分享经济全球中心”战略的深度分析 蔡雄山 腾讯研究院法律研究中心首席研究员 徐 俊 腾讯研究院助理研究员 “分享经济具有巨大的经济潜力&#xff0c;我希望确保英国处于分享经济的前沿与中心&#xff0c;并且成为能够与旧金山相媲美的高科技初创企业的发源地…

C#合并文件夹图片列表 自定义排版顺序

本次程序编写主要为了将pdf word等文档转换为图片后设置不同的打印排版 前提 目标文件夹中的图片高宽都是一致的 /// <summary>/// 合并图片/// </summary>/// <param name"savedictory">文件保存目录</param>/// <param name"singl…

硬盘基本知识(一)

总体来说&#xff0c;硬盘结构包括&#xff1a;盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份。所有的盘片&#xff08;一般硬盘里有多个盘片&#xff0c;盘片之间平行&#xff09;都固定在一个主轴上。在每个盘片的存储面上都有一个磁头&…

MySQL - 存储过程

一、概述 存储过程可以理解为一段 SQL 语句的集合&#xff08;相当于 PHP 中的一个函数方法&#xff0c;去实现业务逻辑&#xff09;&#xff0c;它们被事先编译好并且存储在数据库中。 调用存储过程与直接执行 SQL 语句的效果是相同的&#xff0c;但是存储过程的一个好处是处理…

白话聊应用架构

产业互联网时代&#xff0c;数字化转型&#xff08;数字化演化历史&#xff09;已成为一种趋势&#xff0c;各行各业都投入到数字化转型的浪潮中来。节后有个客户项目参与者问我架构方面的事情&#xff0c;我想来想去对于非IT人来说&#xff0c;可能应用架构是最容易理解&#…

python大数_python处理大数字的方法

本文实例讲述了python处理大数字的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;def getFactorial(n):"""returns the factorial of n"""if n 0:return 1else:k n * getFactorial(n-1)return kfor k in range(1, 70):print "…

数据库分库分表、读写分离的原理和实现,以及使用场景

2019独角兽企业重金招聘Python工程师标准>>> 为什么要分库分表和读写分离&#xff1f; 类似淘宝网这样的网站&#xff0c;海量数据的存储和访问成为了系统设计的瓶颈问题&#xff0c;日益增长的业务数据&#xff0c;无疑对数据库造成了相当大的负载&#xff0c;同时…

谈谈一些有趣的CSS题目(十六)-- 奇妙的 background-clip: text

开本系列&#xff0c;谈谈一些有趣的 CSS 题目&#xff0c;题目类型天马行空&#xff0c;想到什么说什么&#xff0c;不仅为了拓宽一下解决问题的思路&#xff0c;更涉及一些容易忽视的 CSS 细节。 解题不考虑兼容性&#xff0c;题目天马行空&#xff0c;想到什么说什么&#x…