基础笔记(一)Java 集合
2014-04-13 22:31
190 查看
集合日常用到的有List,Set,Map等等。
List
List常用的有2种,包括ArrayList与LinkedList。这两种List的主要区别在于底层的数据结构的差别。ArrayList是基于数组实现的,在其上添加了动态改变数组容量的功能。基于这种实现,其更适合做随机访问,不太适合处理元素的增删操作;相比之下,LinkedList是基于链表结构实现的,这种结构决定了其适合处理元素的增删操作,而不适合做随机访问。而且,LinkedList中有“addFirst”与“addLast”这种方法,因此其也可以当做队列、堆栈等数据结构使用。
List中存放的元素不区分是否相同,而且只能存放对象类型,不能存放基础类型的数据。
List还有2种比较常用的,Vector,Stack。
Vector比较类似ArrayList,相比而言,类似于一个同步的ArrayList。
Stack就是一个堆栈的类型了。
Set
Set比较常用的是HashSet,其不保证数据的顺序,其存放的数据不会重复,内部基于HashMap实现,可以理解为key与value都是一样的HashMap。
Map
Map比较常用的有3种,HashMap,HashTable,ConcurrentMap等。
HashMap不是线程安全的,适合用于单线程或者多线程中单线程的操作中。存取速度是三者中最快的。
HashTable是线程安全的,相比HashMap而言,其方法签名上基本上都加上了synchronized关键字,是一种对象锁,每次操作都是锁定整个hash表。
ConcurrentMap相比HashTable而言,比较大的区别在于锁的粒度。ConcurrentMap内部将hash表分解成多块,多线程操作的时候只会锁一个小块的数据,并发操作性能相比HashTable要高出很多。
List
List常用的有2种,包括ArrayList与LinkedList。这两种List的主要区别在于底层的数据结构的差别。ArrayList是基于数组实现的,在其上添加了动态改变数组容量的功能。基于这种实现,其更适合做随机访问,不太适合处理元素的增删操作;相比之下,LinkedList是基于链表结构实现的,这种结构决定了其适合处理元素的增删操作,而不适合做随机访问。而且,LinkedList中有“addFirst”与“addLast”这种方法,因此其也可以当做队列、堆栈等数据结构使用。
List中存放的元素不区分是否相同,而且只能存放对象类型,不能存放基础类型的数据。
List还有2种比较常用的,Vector,Stack。
Vector比较类似ArrayList,相比而言,类似于一个同步的ArrayList。
Stack就是一个堆栈的类型了。
Set
Set比较常用的是HashSet,其不保证数据的顺序,其存放的数据不会重复,内部基于HashMap实现,可以理解为key与value都是一样的HashMap。
Map
Map比较常用的有3种,HashMap,HashTable,ConcurrentMap等。
HashMap不是线程安全的,适合用于单线程或者多线程中单线程的操作中。存取速度是三者中最快的。
HashTable是线程安全的,相比HashMap而言,其方法签名上基本上都加上了synchronized关键字,是一种对象锁,每次操作都是锁定整个hash表。
ConcurrentMap相比HashTable而言,比较大的区别在于锁的粒度。ConcurrentMap内部将hash表分解成多块,多线程操作的时候只会锁一个小块的数据,并发操作性能相比HashTable要高出很多。
相关文章推荐
- java语言基础之4种代码块以及构造函数比较大集合-java基础精品笔记-作者:逝秋
- Java基础知识强化之集合框架笔记43:Set集合之TreeSet存储Integer类型的元素并遍历
- Java基础知识强化之集合框架笔记59:Map集合之TreeMap(TreeMap<String,String>)的案例
- Java基础知识强化之集合框架笔记62:Map集合之HashMap嵌套HashMap
- Java基础知识强化之集合框架笔记14:List集合存储字符串并遍历
- Java基础知识强化之集合框架笔记19:List集合迭代器使用之 并发修改异常的产生原因 以及 解决方案
- Java基础知识强化之集合框架笔记37:用户登录注册案例
- Java基础知识强化之集合框架笔记39:Set集合之HashSet存储字符串并遍历
- 黑马程序员---2015.6.20java基础笔记---集合类--ArrayList---LinkedList---HashSet
- Java基础知识强化之集合框架笔记02:集合的继承体系图解
- 黑马程序员 JAVA基础学习笔记 集合等
- Java基础知识强化之集合框架笔记57:Map集合之HashMap集合(HashMap<Student,String>)的案例
- Java基础知识强化之集合框架笔记63:Map集合之HashMap嵌套ArrayList
- Java基础知识强化之集合框架笔记72:集合特点和数据结构总结
- Java基础知识强化之集合框架笔记74:各种集合常见功能 和 遍历方式总结
- Java基础知识强化之IO流笔记46:IO流练习之 把文本文件中数据存储到集合中的案例
- 安卓开发之java基础笔记9异常、集合、泛型、递归
- java基础学习笔记——集合解析
- Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介