java集合架构

Collection接口 与 Map接口
1 、collection接口
特点:元素是 无序可重复的集合,无索引的,元素是单例值
子类 :set接口 list接口
1.1 set接口
特点:元素是无需不重复,无索引,底层数据结构是哈希表
对应引用类型元素依赖两个方法:hashCode()和equels()来保证元素的唯一性
实现类:
Hashset实现类
特点: 添加元素是无序不重复,无索引的
实现类:LinkedHashSet
特点:元素有序不重复的
TreeSet实现类
特点: 元素是不重复可排序的(默认升序)
底层数据结构是红黑树
1.2 List接口
特点:元素是有序有索引可重复的
实现类:
LinkedList:底层数据结构是链表,查询慢,增删快。线程不安全,效率高
Vector 底层数据结构是数据,查询快,增删慢。线程安全,效率低
ArrayList 底层数据结构是数据,查询快,增删慢。线程不安全,效率高
2 、map接口
特点:元素是键值对,元素特性有“键”决定,键的要求是无需不重复
实现类:
2.1 HashMap实现类
特点:元素是无需不重复的,线程不安全,性能好,高并发下容易出现问题
底层数据结构是哈希表 允许存放null键null值
LinkedHashMap实现类:元素是有序不重复的额,新加了链保证添加顺序
2.2 IdetityHashMap 实现类:严格按照元素的引用进行重复比较,无序不重复的
2.3 Hashtable 实现类: 元素是无序不重复的,线程安全,使用共享锁,性能差,高并发下竞争越激烈性能越差 不允许存放null键null值
2.4 ConcurrentHashMap 实现类: 元素是无序不重复的,线程安全,使用分段锁,性能得到了优化,高并发下建议使用
2.5 TreeMap 实现类: 元素是不重复课排序的额(默认升序), 底层数据结构基于红黑树 对应引用类型元素依赖两个方法:hashCode()和equals()来保证元素值得唯一性
2.6 Properties 实现类:通常用于生成或者解析属性配置文件,属性文件中的数据就是键值对
java集合架构的更多相关文章
- Java 集合系列 08 Map架构
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 02 Collection架构
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列目录(Category)
下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录. 01. Java 集合系列01之 总体框架 02. Java 集合系列02之 Collection架构 03. Java 集合系 ...
- Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 17 TreeSet
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 16 HashSet
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 15 Map总结
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 14 hashCode
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- 基于Jmeter的thrift-RPC接口测试
根据需求,产品部分功能采用thrift-RPC协议进行接口的增.删.改.查,前期采用Junit对其进行测试,为了提高RPC接口测试的简洁化和后期的性能测试需求,打算通过Jmeter的java类测试实现 ...
- 一个帮助理解python星号的例子
- 微信小程序开发-tabbar组件
"tabBar": { "backgroundColor": "#303133", "color": "#ff ...
- QEMU KVM Libvirt手册(7): 硬件虚拟化
在openstack中,如果我们启动一个虚拟机,我们会看到非常复杂的参数 qemu-system-x86_64 -enable-kvm -name instance-00000024 -S -mach ...
- [Swift]LeetCode478. 在圆内随机生成点 | Generate Random Point in a Circle
Given the radius and x-y positions of the center of a circle, write a function randPoint which gener ...
- [Swift]LeetCode628. 三个数的最大乘积 | Maximum Product of Three Numbers
Given an integer array, find three numbers whose product is maximum and output the maximum product. ...
- SpringMVC+JWT+Swagger UI+RestFul
前言: 其实很早就想写这篇文章了,因为我觉得这会对很多新手有指引作用,当初自己也是瞎子过河的摸索着过来的.目前后台开发比较流行的MVC框架中使用Spring MVC还是比较多的,当然还有Spring ...
- 谷歌浏览器的各种插件网址Chrome插件(谷歌浏览器)-超级详细
各种各样的插件,可以查找对自己有用的,自行下载安装 http://chromecj.com/
- SpringCloud(3)---Eureka服务注册与发现
Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务 ...
- 【朝花夕拾】Android性能篇之(三)Java内存回收
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作 ...