标签:线程 dha val index article class contains 插入 数组
仅仅是不同的类有不同的行为和性能。通常关注下面这些行为:
import java.util.LinkedList;
public class Main {
public static void main(){
LinkedList<Integer> list = new LinkedList<Integer>();
// 添加三个元素
list.add(1);
list.add(2);
list.add(3);
// 删除一个元素
list.remove(2);
// 输出list中全部的元素
for(int e:list) {
System.out.println(e);
}
}
}1 3
对于Map。针对的是它的Key,也就是说它的Key不能反复,而Value随便怎样取值对能够,就不在讨论范围了。
遍历的顺序一般有三种:依照插入顺序进行遍历、依照compareTo结果进行遍历、无序遍历。
依照插入顺序进行遍历的类有List、Vector、Stack、Queue、Deque、LinkedHashMap。当中Stack的遍历顺序和插入的顺序是相反的。Deque是Stack和Queue合体。两种顺序都支持,并且性能更快。
依照compareTo结果进行遍历的类有SortedMap、TreeMap、SortedSet、PriorityQueue。
无序遍历的类有:HashMap、Set、Hashtable。
所以。在Java的集合框架中,支持多线程的类仅仅有三个:Stack、Vector、Hashtable,这些都是早期的类,接口设计不良,性能一般,所以在新的project中一般不再使用。
除了这三个类。其它的类都不支持多线程。
假设确实须要用到多线程。能够调用\path{Collections.synchronizedMap}或者\path {Collections.synchronizedSet}让对象支持对线程。
使用堆实现的类有:PriorityQueue。
标签:线程 dha val index article class contains 插入 数组
原文地址:http://www.cnblogs.com/lxjshuju/p/7025746.html