一、填空题
1、集合
2、Comparator
3、有序、可重复,无序、不可重复
4、hashNext()、next()
5、Collection、Map
6、键、值
7、ListIterator
8、ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap
9、put()、get()
10、Collections、Arrays
二、判断题
1、错 2、对 3、对 4、错 5、对
三、选择题
1、BC 2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B
四、程序分析题
1、程序可以编译通过,输出结果是“a、b、c”,因为TreeSet集合不允许存放重复元素,第2次增加的元素c会覆盖之前存入的元素c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。
2、程序不可以编译通过,这是由于向ArrayList集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用Object类型,而不能使用String类型。
3、程序可以编译通过,但是什么也没有打印。使用ListIterator进行从后向前的遍历集合,可以使用以下两种方法,一是使用listIterator(intindex)方法将索引index的值设置为集合元素的数目,也就是ListIterator it =list.listIterator(3);,二是将程序先从前向后遍历,然后再从后向前遍历。
4、程序编译不通过,由于Map集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用Iterator的remove()方法。
五、简答题
1、为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位
于java.util包中,统称为集合。集合框架中包含3个接口,分别是List、Set、Map。
2、List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。
3、Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。
4、Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map接口的一个实现。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。最大的不同是,Hashtable的方法是线程安全的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
5、(1)提高了Java程序的类型安全,在编译时期解决,避免程序在运行时期发生错误。
(2)消除强制类型转换。
(3)泛型可以替代Object类型的参数和变量的使用,带来性能的大幅提高并增加代码的可读性。
六、编程题
1、参考答案
import java.util.*;
public class Test01 {
publicstatic void main(String[] args) {
ArrayListlist = new ArrayList();
for(inti = 0; i < 10; i++) {
list.add("A"+i);
}
Iteratorit = list.iterator();
while(it.hasNext()){
Objectobj = it.next();
System.out.println(obj);
}
}
}
2、参考答案
import java.util.*;
public class Test02 {
publicstatic void main(String[] args) {
HashSethashSet = new HashSet();
Personp1 = new Person("Jack",25);
Personp2 = new Person("Rose",23);
Personp3 = new Person("Jack",27);
hashSet.add(p1);
hashSet.add(p2);
hashSet.add(p3);
for(Objectobj:hashSet){
Personp=(Person)obj;
System.out.println(p.name+":"+p.age);
}
}
}
class Person{
Stringname;
int age;
publicPerson(String name, int age) {
super();
this.name= name;
this.age= age;
}
public inthashCode() {
return name.hashCode();
}
publicboolean equals(Object obj) {
if(this == obj)
returntrue;
if(obj == null)
returnfalse;
Personother = (Person) obj;
returnother.name.equals(this.name);
}
}
3、参考答案
import java.util.*;
public class Test03 {
public staticvoid main(String[] args) {
TreeMapmap = new TreeMap(new MyComparator());
map.put("1","Lucy");
map.put("2","Lucy");
map.put("3","John");
map.put("4","Smith");
map.put("5","Amanda");
for(Object key : map.keySet()) {
System.out.println(key+ ":" + map.get(key));
}
}
}
class MyComparator implements Comparator {
public intcompare(Object obj1, Object obj2) {
Stringele1 = (String) obj1;
Stringele2 = (String) obj2;
returnele2.compareTo(ele1);
}
}