List、Set和Map
来源:互联网 发布:淘宝客pid 编辑:程序博客网 时间:2024/04/30 11:20
最大的不同就是List是可以重复的。而Set是不能重复的.
List是有序的,Set是无序的(所以迭代查询Set时,元素返回没有特定顺序)
List适合插入删除,Set适合随机存储
其实Set的实现原理是基于Map的,因为Map中的Key也是不能重复的
总结:List有顺序有重复没有排序,set无重复有排序,map的key也和set一样。如果想跟List一样
需要有插入元素的顺序,请使用LinkedHashSet或者LinkedHashMap。
我思所得:collection是个容器接口,list、set接口实现了collection接口;
list主要有ArrayList和LinkedList两个实现类
ArrayList --> 优点:查询速度快,但插入删除效率低(它底层是数组)
LinkedList --> 优点:插入删除效率高,但随机访问速度慢
set主要有HashSet和TreeSet两个实现类
HashSet --> 优点:能够快速定位集合中的元素,基于hash算法,性能优于TreeSet,
所以通常使用HashSet。(HashSet的底层就是HashMap实现的)
TreeSet --> 优点:遍历的时候可以按照字典顺序获得对象(实现了java.util.SortedSet接口)
通常需要对元素进行排序时才使用。
map主要有HashMap和TreeMap两个实现类
HashMap --> 优点:在添加。删除和定位映射关系上性能较好。允许空值和空键
LinkedHashMap --> 当想要迭代时按照插入的顺序排列,那就用它,它是HashMap的子类
TreeMap --> 优点:映射关系是根据键对象按一定信息排列的(也就是说映射关系具有一定的顺序)。
不允许键对象为空。
List是有序的,Set是无序的(所以迭代查询Set时,元素返回没有特定顺序)
List适合插入删除,Set适合随机存储
其实Set的实现原理是基于Map的,因为Map中的Key也是不能重复的
总结:List有顺序有重复没有排序,set无重复有排序,map的key也和set一样。如果想跟List一样
需要有插入元素的顺序,请使用LinkedHashSet或者LinkedHashMap。
我思所得:collection是个容器接口,list、set接口实现了collection接口;
list主要有ArrayList和LinkedList两个实现类
ArrayList --> 优点:查询速度快,但插入删除效率低(它底层是数组)
LinkedList --> 优点:插入删除效率高,但随机访问速度慢
set主要有HashSet和TreeSet两个实现类
HashSet --> 优点:能够快速定位集合中的元素,基于hash算法,性能优于TreeSet,
所以通常使用HashSet。(HashSet的底层就是HashMap实现的)
TreeSet --> 优点:遍历的时候可以按照字典顺序获得对象(实现了java.util.SortedSet接口)
通常需要对元素进行排序时才使用。
map主要有HashMap和TreeMap两个实现类
HashMap --> 优点:在添加。删除和定位映射关系上性能较好。允许空值和空键
LinkedHashMap --> 当想要迭代时按照插入的顺序排列,那就用它,它是HashMap的子类
TreeMap --> 优点:映射关系是根据键对象按一定信息排列的(也就是说映射关系具有一定的顺序)。
不允许键对象为空。
0 0
- List Set和Map
- List、Set和Map
- List、Set和Map
- list,set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List、Set和Map区别
- List, Set和Map区别
- Set和List的区别,List和Map的区别(介绍List,Set,Map对象结构
- spring注入Set,List,Properties和Map
- Collection List Set Map 用法和区别
- List,set,Map 的用法和区别
- kindeditor的N多Bug问题
- HDU 4200 Bad Wiring(高斯消元)
- Java第三章习题3-7(1到n的阶乘和<=9999)
- Linux常用命令
- Cocos2D -- 添加点击侦听listener(基本格式、判断点击区域、拖拽跟随移动)
- List、Set和Map
- 页面静态化
- LeetCodeOJ——1.Tow Sum
- iOS使用setting bundle
- pure render中《Immutable 详解及 React 中实践》一文读后感
- Dalvik虚拟机和Java虚拟机的区别
- 关于C#连接oracle数据报System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本
- AJAX应用
- 变态跳台阶