1、实验目的与要求

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

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

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

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

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

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

一、理论知识

1、数据结构介绍

 (1)一般将数据结构分为两大类:线性数据结构和 非线性数据结构。

 (2)线性数据结构:线性表、栈、队列、串、数组 和文件。

(3)线性表按其存储结构可分为顺序表和链表, 用顺序存储结构存储的线性表称为顺序表;

(4)栈(Stack)也是一种特殊的 线性表,是一种后进先出 (LIFO)的结构。

(5)队列(Queue)是限定所有的插入只能在表的一端进行 ,而所有的删除都在表的另一端进行的线性表。

(6)散列表又称为哈希表;

(7)负载因子越高 (越接近1.0),内存的使用效率越高,元素的 寻找时间越长。负载因子越低 (越接近0.0),元素的寻找时 间越短,内存浪费越多。

2、JAVA的集合框架

(1)集合(Collection或称为容器 )是一种包含多个元素 并提供对所包含元素操作方法的类,其包含的元 素可以由同一类型的对象组成,也可以由不同类 型的对象组成。

(2)框架就是一个类库的集合,框架中包含很多 超类,编程者创建这些超类的子类可较方便的设 计设计程序所需的类。例如:Swing类包

(3)集合类的作用: Java的集合类提供了一些基本数据结构的支持。 – 例如Vector;

(4)集合类的使用: Java的集合类包含在java.util包中。

(5)集合类的特点:特点一:  只容纳对象。

                                 特点二:集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类信息将丢失;

3、JDK1.1版本中的集合类

(1)Vector中只能存放对象。

    Vector的元素通过下标进行访问。

    Vector类关键属性: capacity表示集合最多能容纳的元素个数。capacityIncrement表示每次增加多少容量。size表示集合当前元素个数。

(2)Vector类的关键方法: void addElement(Object obj)     void add(int index, Object element)      Object elementAt(int index)

(3)Stack类是Vector的子类。

    Stack类描述堆栈数据结构,即LIFO。

(4)Hashtable类 :Hashtable通过键来查找元素。

    Hashtable用散列码(hashcode)来确定键。所有对象都有一个散列码,可以通过Object类的 hashCode()方法获得。

2、实验内容和步骤

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

测试程序1:

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

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

import java.util.Vector;

//示例程序1

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++)
        if(cats.elementAt(i)instanceof Cat)// instanceof运算符是用来指出对象是否是特定类的一个实例
        {    
            ((Cat) cats.elementAt(i)).print();
        }else {
            ((Dog) cats.elementAt(i)).print();
        }
    }}

结果如下:

201771010135 杨蓉庆AND张燕 《面对对象程序设计(java)》第十一周学习总结

示例2:

//示例程序2
import java.util.*;

public class Stacks {
    static String[] months = { "1", "2", "3", "4" };

    public static void main(String[] args) {
        Stack stk = new Stack();
        for (int i = 0; i < months.length; i++)
            stk.push(months[i]);//放入一个i值
        System.out.println(stk);
        System.out.println("element 2=" + stk.elementAt(2));//element表示一个节点
        while (!stk.empty())
            System.out.println(stk.pop());//出栈操作
    }
}
Stacks

相关文章:

  • 2021-11-18
  • 2021-10-17
  • 2021-05-21
  • 2021-06-21
  • 2022-03-11
  • 2021-11-15
  • 2022-02-15
  • 2021-07-28
猜你喜欢
  • 2021-07-29
  • 2021-08-09
  • 2021-09-25
  • 2021-11-28
  • 2022-01-14
  • 2021-12-08
  • 2022-02-11
相关资源
相似解决方案