1 下面代码输出的结果是?

请看下列代码:

	public void testAddAllAndContainsAll() {
		Collection<String> c1 = new ArrayList<String>();
		c1.add("terry");
		c1.add("allen");
		System.out.println(c1);
		Collection<String> c2 = new HashSet<String>();
		c2.addAll(c1);
		System.out.println(c2); 
		Collection<String> c3 = new ArrayList<String>();
		c3.add("terry");
		System.out.println(c1.containsAll(c3));
	}

运行testAddAllAndContainsAll方法,程序的输出结果是:()。

A.[terry, allen]

[allen, terry]

false

B.[terry, allen]

[allen, terry]

true

C.[terry, allen]

[]

True

D.[terry, allen]

[]

false

2 关于Iterator,说法正确的是?

A.Iterator用于遍历集合元素。获取Iterator可以使用Collection定义的iterator方法。

B.Iterator提供了统一的遍历集合元素的方式,其提供了用于遍历集合的两个方法,hasNext用于返回迭代的下一个元素,next方法用于判断集合是否还有元素可以遍历。

C.在使用Iterator遍历集合时,不能通过集合的remove方法删除集合元素,否则会抛出异常。我们可以通过迭代器自身提供的remove()方法来删除通过next()迭代出的元素。

D.Java5.0之后推出了一个新的特性,增强for循环,也称为新循环。该循环只用于遍历集合或数组。在遍历集合时,该循环是与Iterator完全不同的迭代方式。

3 简述ArrayList和LinkedList的不同

4 下面代码输出的结果是?

请看下列代码:

	public void testInsertAndRemove() {
		List<String> list = new ArrayList<String>();
		list.add("terry");
		list.add("allen");
		list.add("smith");
		list.add(2, "marry");
		System.out.println(list); 
		list.remove(1);
		System.out.println(list);
	}

运行testInsertAndRemove方法,程序的输出结果是:()。

A.[terry, marry, allen, smith]

[terry, marry, smith]

B.[terry, marry, allen, smith]

[allen, marry, smith]

C.[terry, allen, marry, smith]

[allen, marry, smith]

D.[terry, allen, marry, smith]

[terry, marry, smith]

5 下面代码输出的结果是?

请看下列代码:

	public void testSubList() {
		List<Integer> list = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			list.add(i);
		}
		List<Integer> subList = list.subList(2, 5);
		for (int i = 0; i < subList.size(); i++) {
			subList.set(i, subList.get(i) * 10);
		}
		System.out.println(subList); 
		System.out.println(list);
	}

运行testSubList方法,程序的输出结果是:()。

A.[20, 30, 40,50]

[0, 1, 20, 30, 40, 50, 6, 7, 8, 9]

B.[20, 30, 40,50]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

C.[20, 30, 40]

[0, 1, 20, 30, 40, 5, 6, 7, 8, 9]

D.[20, 30, 40]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

6 简述List和数组直接相互转化的方法

7 使用Comparator接口实现排序

使用Comparator接口实现对集合中的元素排序,详细要求如下:

1) 使用ArrayList构建集合对象emps,要求该集合中存储Emp类型的数据。

2) 分别构造name、age、gender以及salary为("Terry", 25,'m',6000)、("Allen", 21,'f',4000)、("Smith", 23,'m',3000)的三个Emp类的对象,并将这三个对象加入到集合emps中。

3) 使用Collections类提供的sort方法,按照Emp对象的salary属性的值升序排列集合emps,sort方法的声明如下:

public static <T> void sort(List<T> list,
                                   Comparator<? super T> c)

8 简述队列和栈的不同,以及在 Java语言中如何实现这两个数据结构