List 接口通常表示一个列表(数组、队列、链表
栈),有索引,其中的元素可以重复的是:ArrayList 和LinkedList,另外还有不常用的Vector。LinkedList实现来Queue接口,因此也可以作为队列使用。
Set接口通常表示一个集合,其中的元素不可以重复(通过hashcode和equals函数保证),常用的实现类有HashSet和TreeSet
public class ArraylistandLinkedlist {
public static final int N = 50000;
public static List values;
static {
Integer vals[] = new Integer[N];
Random r = new Random();
for (int i = 0, currval = 0; i < N; i++) {
vals = new Integer(currval);
currval += r.nextInt(100) + 1;
}
values = Arrays.asList(vals);
}
static long timeList(List lst) {
long start = System.currentTimeMillis();
for (int i = 0; i < N; i++) {
int index = Collections.binarySearch(lst, values.get(i));
if (index != i)
System.out.println("***错误***");
}
return System.currentTimeMillis() - start;
}
public static void main(String args[]) {
System.out.println("ArrayList消耗时间:" + timeList(new ArrayList(values)));
System.out.println("LinkedList消耗时间:" + timeList(new LinkedList(values)));
}
}