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 ...
随机推荐
- C# CreateParams的使用(解决闪屏问题)
<转载自:https://blog.csdn.net/xpwang/article/details/53427479> 窗体和控件的属性CreateParams(这真的是一个属性)很神奇, ...
- js中的观察者模式
什么事观察者模式: 这是一种创建松散耦合代码的技术.它定义对象间 一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知.由主体和观察者组成,主体负责发布事件,同时观察者通过 ...
- 【转载】C++ ,C#数据类型对照
C++ C#=====================================WORD ushortDWORD uintUCH ...
- 【安富莱】【RL-TCPnet网络教程】第11章 RL-TCPnet调试方法
第11章 RL-TCPnet调试方法 本章节为大家讲解RL-TCPnet的调试方法,RL-TCPnet的调试功能其实就是通过串口打印实时监控运行状态.而且RL-TCPnet的调试设置比较简单 ...
- [Swift]LeetCode481. 神奇字符串 | Magical String
A magical string S consists of only '1' and '2' and obeys the following rules: The string S is magic ...
- [Swift]LeetCode518. 零钱兑换 II | Coin Change 2
You are given coins of different denominations and a total amount of money. Write a function to comp ...
- [Swift]LeetCode806. 写字符串需要的行数 | Number of Lines To Write String
We are to write the letters of a given string S, from left to right into lines. Each line has maximu ...
- spring boot -spring data-redis
//添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- 微信小程序开发测试
微信小程序 在2017-01-09正式上线,本着跟上时代潮流的精神,写一份教程来看看 微信IDE下载地址为: 微信IDE 在windows下直接 双击 exe安装即可,安装完成后的界面如下: 得到这个 ...
- qt 布局
说到qt布局,比起之前用的MFC好了许多,而且qt支持qss,可以更好的美化界面.qt提供了几种常见的布局管理 窗体布局,这对客户端程序来说是一个福音,再也不用操心程序界面放大缩小时界面控件怎么变化, ...