java 集合框架(习题) 集合框架 Key Point * Collection 接口、Set 接口、List 接口基本操作 * List 接口及其实现类 * Set 接口及其实现类 * 迭代遍历 * Hash 算法与 hashCode 方法 * Comparable 接口 * Map 接口及其实现类 * 遍历 Map * 泛型 练习 1. 填空 Collection 接口的特点是元素是对象; List 接口的特点是元素有(有|无)顺序,可以(可以|不可以)重复; Set 接口的特点是元素无(有|无)顺序,不可以(可以|不可以)重复; Map 接口的特点是元素是键值对,其中值可以重复,键不可以重复。 2. (List)有如下代码 import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); } public static void printList(List list){ for(Object obj:list){ String str=(String)obj; System.out.println(obj); } } } 要求: 1) 把//1 处的代码补充完整,要求输出 list 中所有元素的内容 2) 写出程序执行的结果 Hello java Learn World 3) 如果要把实现类由 ArrayList 换为 LinkedList,应该改哪里?ArrayList 和 LinkedList 使用上有什么区别?实现上有什么区别? 把实例化的语句改为new LinkedList(); ArrayList 数组实现 查询快 增删慢 LinkedList 链表实现 查询慢 增删快 4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使 用上有什么区别?实现上有什么区别? ArrayList 是线程不同步的,轻量级的,线程不安全,速度快 Vector 是线程同步的 ,多线程访问比较安全,速度慢 3. (List)写出下面程序的运行结果 import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Hello”); list.add(“Learn”); list.remove(“Hello”); list.remove(0); for(int i = 0; i