第十一周总结

一、知识总结

1.Collection和Map是Java集合框架的根接口。

2.List接口和Set接口继承自Collection接口。
3.Set无序不允许元素重复。

    HashSet (无序)
    TreeSet (有序)
4.List有序且允许元素重复。

    ArrayList
    LinkedList
    Vector
5.Map也属于集合系统,但和Collection接口没关系。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。

    HashMap (无序)
    TreeMap (有序)
    WeakHashMap
    Hashtable (无序,线程安全)
6.SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

7.ArrayList和Vector区别

   ArrayList和Vector都实现了List接口,都是通过数组实现的。
   ArrayList是非线程安全的, Vector是线程安全的。
   List第一次创建的时候,会有一个初始大小,随着不断向List中增加元素,当List 认为容量不够的时候就会进行扩容。ArrayList增长原来的50%,Vector缺省情况下自动增长原来一倍的数组长度。
8.ArrayList和LinkedList区别及使用场景

区别:

 ArrayList底层是用数组实现的,可以认为ArrayList是一个可改变大小的数组, 查找速度快。随着越来越多的元素被添加到ArrayList中,其大小是动态增加的。

  LinkedList底层是通过双向链表实现的, LinkedList和ArrayList相比,增删的速度较快。但是查询和修改值的速度较慢。同时,LinkedList还实现了Queue接口,所以他还提供了offer(),peek(), poll()等方法。

使用场景:

ArrayList更适合快速检索、以及在末尾插入或删除(数组的特性)。
LinkedList更适合从中间插入或者删除(链表的特性)。

二、实验

1、实验目的与要求

(1) 掌握Vetor、Stack、Hashtable三个类的用途及常用API;

(2) 了解java集合框架体系组成;

(3) 掌握ArrayList、LinkList两个类的用途及常用API。

(4) 了解HashSet类、TreeSet类的用途及常用API。

(5)了解HashMap、TreeMap两个类的用途及常用API;

(6) 结对编程(Pair programming)练习,体验程序开发中的两人合作。

2、实验内容和步骤

实验1: 导入第9章示例程序,测试程序并进行代码注释。

测试程序1:

使用JDK命令运行编辑、运行以下三个示例程序,结合运行结果理解程序;

掌握Vetor、Stack、Hashtable三个类的用途及常用API。

import java.util.Vector;

class Cat {
    private int catNumber;

    Cat(int i) {
        catNumber = i;
    }

    void print() {
        System.out.println("Cat #" + catNumber);
    }
}

class Dog {
    private int dogNumber;

    Dog(int i) {
        dogNumber = i;
    }

    void print() {
        System.out.println("Dog #" + dogNumber);
    }
}

public class CatsAndDogs {
    public static void main(String[] args) {
        Vector cats = new Vector();
        for (int i = 0; i < 7; i++)
            cats.addElement(new Cat(i));
        cats.addElement(new Dog(7));
        for (int i = 0; i < cats.size(); i++)
            ((Cat) cats.elementAt(i)).print();//进行强制类型转化
    }
}
示例1

相关文章: