码迷,mamicode.com
首页 > 编程语言 > 详细

java容器总结

时间:2014-11-16 09:17:22      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   java   on   问题   cti   代码   bs   

容器归纳
I. collection 容器 高层次接口 
set 与 list 继承collection 接口 两者不同是 
set:元素 无序且不可重复  常用实现类 hashset 
list:元素 有序 且可以重复 常用实现类 linkedlist,arraylist,vector 三者特点
解释  线程安全 
如果代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。
linkedlist   采用双向链表实现的list 查询效率低,增删效率高  线程不安全
arraylist    采用数组实现list       查询效率高,增删效率低  线程不安全
vector       采用数组实现list        线程安全
当要求的线程安全时采用vector          增删频繁时采用linkedlist
II.Map接口 存储键值对  已实现的类有 hashmap,hashtable 
不同点 hashmap是线程不安全 效率高 允许key/value 为空
hashtable是线程安全的     但效率地 不允许key/value 为空 hashtable 子类key value均为String
III.Iterator接口 每个collection容器均有一个iterator方法,对容器内的对象进行迭代遍历
hasNext()  容器中是否还有没有遍历元素
next()     得到当前位置元素,游标移到下一个位置
IV.collections工具类对set,list,map集合进行排序
sort(list)升序
shuffle()随机排列
。。
V.对于类可以进行排序,均实现了comparable接口
VI.重写equals 与hashcode 方法情况
1.当自定义的对象放入到hashset中以及hsahmap中的key中时需要重写
2.放到collection中调用remove contains方法是需要重写

java容器总结

标签:io   ar   sp   java   on   问题   cti   代码   bs   

原文地址:http://www.cnblogs.com/hlly/p/4101004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!