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

6.5 练 习 题

 

6.5     

1填空题

1)与CC++不同,Java在数组声明时不用在“[ ]”中指出数组元素的个数,即数组长度,因为Java在数组声明时并不为数组元素分配内存。为元素分配内存则要使用到

          运算符。

2Java集合框架提供了一套核心接口有                                

                             

3Java中对Set接口的实现的类有                              

4)在Java集合框架中有两种常规的List实现:                             

可以快速随机访问,但当元素的安插或移除发生在List中央位置时,效率很差。         

适合用来进行安插和移除,但随机访问的速度较慢。

5Java集合框架提供两种常规的Map实现:                    。在Map中插入、删除和定位元素,          是最好的选择。但如果需要要按自然顺序或自定义顺序遍历键,那么就应该用         

2选择题

1)下面定义一维整型数组的示例中,正确的是     

Aint array[5];                                 Bint array = new int[5];

Cint[] array = new int[5];             Dint arry[5] = new int[5];

2)下面定义二维整形数组的示例中,正确的是     

Aint array[5][5];                                   Bint[][] array = new int[5][];

Cint[][] array = new int[][5];           Dint arry[5] = new int[5][5];

3)需要存储一组不重复的数据,仅供快速查找使用,不需要排序,使用      类比较合适。

AHashSet          BTreeSet            CArrayList                DLinkList

4)为了能使存储在SortedSet中的对象按给定的顺序排列,应该给此对象实现     

接口。

AList                 BIterator            CComparable            DMap

5Map      方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键-值对。

Aiterator( )        Bget( )               Centry( )                   DentrySet( )

3问答题

1Java集合框架提供了哪些接口?它们的功能分别是什么?

2Iterator接口的功能是什么?

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

       }

}