练习 4 当你不再孤独

Posted on 2007-12-17 09:02 webcenter 阅读(56) 评论(0)  编辑  收藏
 

如没有特别提示,本练习涉及到的类限定在java.util包中。且不认为java.util.xxx包属于java.util包,它们是两个独立的包。

如果没有上下文语境,“集合”代表“所有的能够容纳一堆东西的数据结构”,而不是特指Set这一种数据结构。

一个都不能少

a1 java中有很多数据结构可以表示一堆东西,他们包括:数组(Array)、列表(List)、集合(Set)、映射(Map)等等。请找出这几种数据结构之间的区别和联系。

a2 如何能够知道一个接口有哪些具体的实现类?请找出列表、集合、映射等接口的实现类。并说明这些实现类之间的区别和联系。例如:ArrayListVectorList的实现,他们有什么区别和联系?

a3 请试着将你找到的所有和集合相关的类用一张图来表示,并标出他们之间的继承关系。

a4 集合中可以放什么,不可以放什么?为什么?考虑范围包括:对象,原始类型数据,null

整装待发

b1 数组的初始化有几种方式?

       请详细解释以下每一行代码在做一件什么事情?他们是否等价?

       String[] s1 = {"1","2","3"};

       String[] s2 = new String[]{"1","2","3"};

       String[] s3 = new String[3];

 

       请详细解释以下每一行代码在做一件什么事情?他们是否等价?

       String[][] ss1 = new String[2][];

       String[][] ss2 = new String[2][0];

       String[][] ss3 ={{},{}};

       String[][] ss4 = new String[2][2];

 

b2 以下两种初始化方式有何区别?我们应该使用哪种?为什么?

       List a = new ArrayList();

       ArrayList b = new ArrayList();

 

阅兵仪式

c1 在编程领域,什么叫遍历?如何遍历一个多维数组?请举例说明。

c2 如何遍历集合?请给出每种集合的遍历代码。

c3 在遍历的过程中,是否能够删除或增加一个集合元素?如果有修改的需求怎么办?请结合以下代码说明。

       List l = new ArrayList();

       l.add("a");

       System.out.println(l.size());

       for(Iterator iter=l.iterator();iter.hasNext();){

           iter.next();

           l.add("b");

       }

c4 你如何理解Iterator接口?他为什么能够遍历所有的集合类型,甚至是当前未知的集合类型?

 

沙场征战

d1 有如下字符串:

http://blog.csdn.net/webcenter? a=1&b=2&c=3&c=4

去掉网址后剩下的部分叫做查询字符串:a=1&b=2&c=3&c=4,其中有四对参数,用&分割。例如第一对中,a叫做键,1叫做值。

请将查询字符串以键值对为单位,存入一个适当的集合结构当中。该集合应该能够方便的进行以下操作。

请在该集合中再增加几个键值对,c=5c=6a=2a=3d=1b=2。如果有重名的键存在,但值不同,则不能覆盖原来的;如果有重名的键值对,则要覆盖。

请用代码从集合中找出符合以下条件的数据:值为2的键值对;键为c的键值对;所有的键列表;所有的值列表。

请在该集合中去掉几个键值对:键为c的键值对;键为a值为2的键值对。

将集合中的所有数据打印出来,并将集合中的键值对转化为新的查询字符串。

d2 你能否将以上操作封装到一个类中,作为处理url地址的工具供以后使用。


只有注册用户登录后才能发表评论。


网站导航: