您的位置: 网站首页 > 程序开发 > Java程序设计 > 第6章 Java的数据结构 > 【6.5 练 习 题】

6.5 练 习 题

 

6.5  练  习  题

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);

       }

}