java 实验七 对象集合 实验报告(4)

2019-08-30 21:30

Iterator iter = set.iterator(); while(iter.hasNext()){ Object key = iter.next(); Object value = map.get(key);

System.out.println(key + \ + value); }

//输出所有教JSP的老师 iter = set.iterator(); while(iter.hasNext()){ Object key = iter.next(); Object value = map.get(key); if (value.equals(\)){ System.out.println(key); } } } }

其运行结果截图如下:

5【选做】运行并分析程序运行结果。

import java.util.*; public class Question10_3 { public void run() {

List v = new Vector(); v.add(\

v.add(0, \v.addElement(\ v.add(\ v.add(1,\

v.addElement(\

System.out.println(v); String name = (String)v.get(3); System.out.println(name); } }

问题:

(1) 程序出现的编译错误是什么?什么原因? 答:其错误原因是将强加类型转换添加至“v”,修改方法是将List v = new Vector();改为Vector v = new Vector();

(2)add()方法和addElement()方法有何不同? 答:Vector类的add()与 addElement()方法都是将指定元素追加到向量的末尾。并且后者是将大小增加一,两者效果相同。

不同是一个是实现Collection接口的方法,并且返回一个boolean值 //add方法,一个是容器自己的方法//addElement(),add()是sun的推荐方法,sun建议不要使用addElement()

连Vector都不推荐用了,boolean add(E o)是将指定元素追加到此向量的末尾。void add(int index, E element) 是在此向量的指定位置插入指定的元素。addElement(E obj) 是将指定的组件添加到此向量的末尾,将其大小增加 1。

(3)对于get()方法返回的元素是否需要强制类型转换?

答:.get() 通过索引进行元素访问注:该方法返回的是一个

OBJECT类型的元素,

需要进行强制类型转换为该元素原始类型

6【选做】. 运行程序,回答下面问题。

package experiment10; import java.util.*; public class Question10_4 { public void run() {

Set s = new HashSet(); s.add(\ s.add(\ s.add(\ s.add(\ s.add(\ s.add(null); Iterator i = s.iterator(); boolean b = true; while (i.hasNext()) {

System.out.println(i.next() + \ if(b) { i.remove(); b = false; }

}

System.out.println(); i = s.iterator(); while (i.hasNext())

System.out.println(i.next() + \ System.out.println(); } }

问题:

(1)程序的运行结果是什么? 答:该程序的执行结果如下所示:

2nd 1st 3rd 4th first

(2) remove方法删除掉的对象是“first”吗,如果不是,那为什么?

答:remove():从集合中删除上一个有next()方法返回的元素。remove() 方法会在删除当前迭代对象的同时维护索引的一致性。

(3) 多次运行程序,得到结果都一样吗?为什么? 答:一样.

7【选做】编写应用程序,按照图示的输出结果完成程序:在main方法中创建ArrayList对象list,并添加15个Integer对象后输出;对列表中的元素随机排序后输出;对列表中的元素降序排序后输出;对列表中的元素升序排序后输出;查找列表中是否由元素12和-9,并分别输出查找结果。

根据结果,其程序代码设计如下:

package zi;

import java.util.*; publicclass Ex7_7{

publicstaticvoid main(String[] args){ List list=newArrayList(); for(int i=1;i<=15;i++){ list.add(new Integer(i)); }

System.out.println(\列表中的元素:\\n\\t\+list); Collections.shuffle(list);

System.out.println(\随机排序后,列表中的元素:\\n\\t\+list); Collections.sort(list,Collections.reverseOrder()); System.out.println(\降序排序后,列表中的元素:\\n\\t\+list); Collections.sort(list); System.out.println(\升序排序后,列表中的元素:\\n\\t\+list); int i=Collections.binarySearch(list,12); int j=Collections.binarySearch(list,-9); if(i==11)

System.out.println(\找到:12\); else

System.out.println(\没有以下元素:12\); if(j!=-1)

System.out.println(\找到:-9\); else

System.out.println(\没有以下元素:-9\); } }

执行后结果与老师提供的相符。

其UML图截图如下:

8【选做】.Comparable、 Comparator两个排序接口的功能与区别?请书面回答。

答:功能:Comparable & Comparator 都是用来实现集合中的排序的。comparable是通用的接口,用户可以实现它来完成自己特定的比较,而comparator可以看成一种算法的实现,在需要容器集合collection需要比较功能的时候,来指定这个比较器,这可以看出一种设计模式,将算法和数据分离,就像C++ STL中的函数对象一样。

区别:前者应该比较固定,和一个具体类相绑定,而后者比较灵活,它可以被用于各个需要比较功能的类使用。可以说前者属于“静态绑定”,而后者可以“动态绑定”。

实验心得:

通过看书和百度来验证自己的实验猜想和推测,但有时候在实验过程中的一些问题百度也查不到,只能凭感觉改,但有时候总改不好。


java 实验七 对象集合 实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:审计学练习题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: