标签:线程 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