1.填空题
(1)与C和C++不同,Java在数组声明时不用在“[ ]”中指出数组元素的个数,即数组长度,因为Java在数组声明时并不为数组元素分配内存。为元素分配内存则要使用到
运算符。
(2)Java集合框架提供了一套核心接口有 、 、 、
、 和 。
(3)Java中对Set接口的实现的类有 、 和 。
(4)在Java集合框架中有两种常规的List实现: 和 。
可以快速随机访问,但当元素的安插或移除发生在List中央位置时,效率很差。
适合用来进行安插和移除,但随机访问的速度较慢。
(5)Java集合框架提供两种常规的Map实现: 和 。在Map中插入、删除和定位元素, 是最好的选择。但如果需要要按自然顺序或自定义顺序遍历键,那么就应该用 。
2.选择题
(1)下面定义一维整型数组的示例中,正确的是 。
A.int array[5]; B.int array = new int[5];
C.int[] array = new int[5]; D.int arry[5] = new int[5];
(2)下面定义二维整形数组的示例中,正确的是 。
A.int array[5][5]; B.int[][] array = new int[5][];
C.int[][] array = new int[][5]; D.int arry[5] = new int[5][5];
(3)需要存储一组不重复的数据,仅供快速查找使用,不需要排序,使用 类比较合适。
A.HashSet B.TreeSet C.ArrayList D.LinkList
(4)为了能使存储在SortedSet中的对象按给定的顺序排列,应该给此对象实现
接口。
A.List B.Iterator C.Comparable D.Map
(5)Map的 方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键-值对。
A.iterator( ) B.get( ) C.entry( ) D.entrySet( )
3.问答题
(1)Java集合框架提供了哪些接口?它们的功能分别是什么?
(2)Iterator接口的功能是什么?
4.上机操作题
(1)指出下列程序的运行结果。
import java.util.*;
class foo implements Comparable {
public String Name;
public String Addr;
public foo(String Name, String Addr) {
this.Name = Name;
this.Addr = Addr;
}
public boolean equals(Object o) {
foo f = (foo)o;
return f.Name.equals(Name) && f.Addr.equals(Addr);
}
public int hashCode() {
return 31*Name.hashCode()+Addr.hashCode();
}
public String toString() {
return new String("{"+Name+","+Addr+"}");
}
public int compareTo(Object o) {
foo f = (foo)o;
return Name.compareTo(f.Name);
}
}
public class testfoo{
static final Comparator bar = new Comparator() {
public int compare(Object o1, Object o2) {
foo f1 = (foo) o1;
foo f2 = (foo) o2;
return f1.Addr.compareTo(f2.Addr);
}
};
public static void main(String args[]){
foo f[] = {
new foo("John", "BeiJing"),
new foo("Rose", "ShangHai"),
new foo("Jack", "GuangZhou"),
new foo("Hallen", "ChongQing")
};
List flist = Arrays.asList(f);
System.out.println(flist);
Collections.sort(flist);
System.out.println(flist);
Collections.sort(flist,bar);
System.out.println(flist);
}
}
(2)指出下列程序的运行结果。
import java.util.*;
public class testMaps{
public static void main(String[] args){
Map m = new LinkedHashMap();
for( int i=1; i<5; i++)
m.put("key" + i, "VALUE" + i);
Set keys = m.keySet();
Collection values = m.values();
keys.remove("key2");
values.remove("VALUE1");
System.out.println(m);
}
}