标签: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方法是需要重写
标签:io ar sp java on 问题 cti 代码 bs
原文地址:http://www.cnblogs.com/hlly/p/4101004.html