java容器详解_详解Java 容器(第①篇)——概览

![](http://img.blog.itpub.net/blog/2020/04/02/9d89d3008962c127.png?x-oss-process=style/bb)

容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。

# 一、Collection

![](https://upload-images.jianshu.io/upload_images/20352904-49090a7a132ecb70.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**1. Set**

- TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。 但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。

- HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。 并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。

- LinkedHashSet:具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序。

**2. List**

- ArrayList:基于动态数组实现,支持随机访问。

- Vector:和 ArrayList 类似,但它是线程安全的。

- LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。 不仅如此,LinkedList 还可以用作栈、队列和双向队列。

**3. Queue**

- LinkedList:可以用它来实现双向队列。

- PriorityQueue:基于堆结构实现,可以用它来实现优先队列。

# 二、Map

![](https://upload-images.jianshu.io/upload_images/20352904-5adabf8a9503433e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- TreeMap:基于红黑树实现。

- HashMap:基于哈希表实现。

- HashTable:和 HashMap 类似,但它是线程安全的, 这意味着同一时刻多个线程可以同时写入 HashTable 并且不会导致数据不一致。 它是遗留类,不应该去使用它。现在可以使用 ConcurrentHashMap 来支持线程安全, 并且 ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。

- LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69964492/viewspace-2684099/,如需转载,请注明出处,否则将追究法律责任。

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

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

相关文章

python图形界面库哪个好_8个必备的Python GUI库

Python GUI 库有很多,下面给大家罗列常用的几种 GUI库。下面介绍的这些GUI框架,能满足大部分开发人员的需要,你可以根据自己的需求,选择合适的GUI库。1. wxPython wxPython 是一个跨平台的 GUI 工具集,是 Python 语言的…

为什么在Python中使用string.join(list)而不是list.join(string)?

join() is a string method and while using it the separator string iterates over an arbitrary sequence, forming string representations of each of the elements, inserting itself between the elements. join()是一个字符串方法,使用它时,分隔…

js的client、scroll、offset详解与兼容性

clientWidth:可视区宽说明:样式宽padding参考:js的client详解 scrollTop : 滚动条滚动距离说明:chrome下他会以为滚动条是文档元素的,所以需要做兼容:var scrollTop document.documentElement.scrollTop |…

88是python语言的整数类型_Python基础数据类型题

Python基础数据类型 题 考试时间:三个小时 满分100分(80分以上包含80分及格) 1,简述变量命名规范(3分)1.必须是字母,数字,下划线的任意组合。 2.不能是数字开头 3.不能是python中的关…

[转载]使用awk进行数字计算,保留指定位小数

对于在Shell中进行数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1、bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点。 [wangdongcentos715-node1 ~]$ echo 12 |bc 3 [wangdongcentos715-node1 ~]$ ec…

dcom配置_spring cloud 二代架构依赖组件 全配置放送

一 背景介绍先来看一下我们熟悉的第一代 spring cloud 的组件spring cloud 现在已经是一种标准了,各公司可以基于它的编程模型编写自己的组件 ,比如Netflix、阿里巴巴都有自己的一套通过spring cloud 编程模型开发的分布式服务组件 。Spring Cloud 二代组…

olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作

olap 多维分析In the previous article of OLAP, we have seen various applications of OLAP, Various types of OLAP, advantages, and disadvantages of OLAP. In this article, we will learn about the, 在OLAP的上一篇文章中,我们了解了OLAP的各种应用&#x…

dede mysql语句_让dede运行php代码和mysql语句

一、dede运行php代码举例1:{dede:name runphpyes}$str "hello ";me $str;me . "world";{/dede:name}结果:hello world说明:"name"为任意定义的名字,me 表示当前的值,也就是要输出最后…

每周一书-2016年8月28日到9月4日获奖读者公布

每周一书-2016年8月28日到9月4日获奖读者公布 上次送出的《Bootstrap基础教程》,已经被幸运者收到了。我们先来回顾下《改善C程序代码的125个建议》活动文章下的精彩留言。 这是一段高屋建瓴的评述,足见作者对C语言的了解和热爱层度,当然也得…

c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装2

c构造函数和析构函数Program 1: 程序1&#xff1a; #include<iostream>using namespace std;class Sample{private:int X;int Y;public:Sample(int x, int y){X x;Y y;}void set(int x, int y){X x;Y y;}void print(){cout<<X<<" "<<Y&…

python map函数的作用_Python的map函数

map()是 Python 内置的高阶函数&#xff0c;它接收一个函数 f 和一个 list&#xff0c;并通过把函数 f 依次作用在 list 的每个元素上&#xff0c;得到一个新的 list 并返回。 例如&#xff0c;对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方&#xf…

idea java no sdk_java - intelliJ IDEA 13错误:请选择Android SDK

java - intelliJ IDEA 13错误&#xff1a;请选择Android SDK我已经在Error: Cannot find any configured Android SDK上安装了intelliJ 12.1.2和Error: Cannot find any configured Android SDK。现在我使用intelliJ 13.0.1创建了一个空的android应用程序项目(也使用模拟器作为…

该怎样在KeyShot中进行贴图

2019独角兽企业重金招聘Python工程师标准>>> 在渲染物体的时候&#xff0c;贴图常常是不可缺少的部分&#xff0c;贴图主要用于描述对象表面的物质形态&#xff0c;构造真实世界中自然物质表面的视觉表象。不同的贴图能给人带来不同的视觉感受&#xff0c;KeyShot3D…

python淘宝cookies抢购_Python实现淘宝秒杀聚划算抢购自动提醒源码

说明 本实例能够监控聚划算的抢购按钮&#xff0c;在聚划算整点聚的时间到达时发出提醒&#xff08;音频文件自己定义位置&#xff09;并自动弹开页面&#xff08;URL自己定义&#xff09;。 同时还可以通过命令行参数自定义刷新间隔时间&#xff08;默认0.1s&#xff09;和监控…

kadane算法_使用KADANE的算法求最大子阵列和

kadane算法What is a sub-array? 什么是子阵列&#xff1f; A sub-array is basically an arrays contiguous part. For example, if we have an array of integers [1,2,3] so the sub-arrays that we can form from the given array are [1], [2] , [3] , [1,2] , [2,3] , …

java汽车油耗计算_转发一个手机油耗计算器 (java)

今天在一个汽车论坛上看见的&#xff0c;试了试&#xff0c;还真不错。比以前那个Fuel Consumption 功能要强大,虽然都是JAVA软件。小罗盘手机计算器是作者独自产品策划、美术设计、程序开发、测试发布的手机应用软件&#xff0c;是为作者的一个朋友写的&#xff0c;当然我们用…

6.dubbo常用的xml配置有哪些_【面试篇】必须掌握的Spring 常用注解

阅读文本大概需要5分钟。注解本身没有功能的&#xff0c;就和 xml 一样。注解和 xml 都是一种元数据&#xff0c;元数据即解释数据的数据&#xff0c;这就是所谓配置。本文主要罗列 Spring|Spring MVC相关注解的简介。Spring部分1、声明bean的注解Component 组件&#xff0c;没…

Linux的iptables常用配置范例(2)

iptables -F #清除所有规则 iptables -X #清除所有自定义规则 iptables -Z #各项计数归零 iptables -P INPUT DROP #将input链默认规则设置为丢弃 iptables -P OUTPUT DROP #将output链默认规则设置为丢弃 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo …

aptitude 命令_C-命令行参数Aptitude问题与解答

aptitude 命令C programming Command Line Arguments Aptitude Questions and Answers: In this section you will find C Aptitude Questions and Answers on Command Line Arguments – Passing values with running programs, separate argument values, number of argument…

文件上传java逻辑_Java 文件上传 实例

import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class Upload {private String saveDir "."; // 要保存文件的路径private String contentType ""; // 文档类型private String charset "";…