java集合类实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【实验名称】:使用java集合类,判断海量数据段的重复性
【实验目的】:
1.了解java集合类的概念,并对于集合类有大致的理解。
2.掌握使用集合类的方法和技巧,并应用到实际操作中
3.体会java学习的魅力,进一步提升java编程的能力
【实验环境】:
Windows 8.1 eclipse jdk8
【实验步骤】:
一.集合类的简单介绍
数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到如下这样的问题:
1、我们需要该容器的长度是不确定的。
2、我们需要它能自动排序。
3、我们需要存储以键值对方式存在的数据。
如果遇到上述的情况,数组是很难满足需求的,接下来本章将介绍另一种与数组类似的数据结构——集合类,集合类在Java中有很重要的意义,保存临时数据,管理对象,泛型,Web框架等,很多都大量用到了集合类。
常见的集合类有这些种:
实现Collection接口的:Set、List以及他们的实现类。
实现Map接口的:HashMap及其实现类。
二.各集合的学习:
1、Collection接口
Collection是最基本集合接口,它定义了一组允许重复的对象Collection 接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下:
编写以下代码:
输出如下图所示:
2.List接口的实现类
List接口继承了Collection接口,因此包含Collection中的所有方法,此外,List接口还定义了以下两个非常重要的方法。
get(int index):获得指定索引位置的元素。
set(int index , Object obj):将集合中指定索引位置的对象修改为指定的对象。
List接口的常用实现类有ArrayList与LinkedList。
ArrayList类实现了可变的数组,允许所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。
LinkedList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较好;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较慢。
利用以上方法编写代码如下:
程序运行结果如下:
3.set集合学习:
Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中它有如下特点:
1.它不允许出现重复元素;
2.不保证集合中元素的顺序
3.允许包含值为null的元素,但最多只能有一个null元素。
Set接口继承了Collection接口,因此包含Collection接口的所有方法。
程序输出结果如下:
经过调试验证发现,set集合的确不能保证集合中元素的顺序,并且不能添加重复的元素。然后利用TreeSet编写代码如下所示:
输出如下图所示:
经过检验是按照字典序输出的。
4.Map集合
Map接口提供了将key映射到值的对象。一个映射不能包含重复的key,每个key 最多只能映射到一个值。Map接口中同样提供了集合的常用方法,除此之外还包括如下表所示的常用方法。Map接口常用的实现类有HashMap和TreeMap。建议使用HashMap类实现Map集合,因为由HashMap类实现的Map集合对于添加和删除映射关系效率更高。HashMap是基于哈希表的Map接口的实现,HashMap通过哈希码对其内部的映射关系进行快速查找;而TreeMap中的映射关系存在一定的顺序,如果希望Map集合中的对象也存在一定的顺序,应该使用TreeMap类实现Map集合。
代码运行结果如下所示:
题目:
运行结果如下:
【实验总结】:
通过这次实验,我理解了java中集合类的基本概念,尝试使用了set,map,list的一些基本用法,对于java语言的掌握更深了一步,并在最后的应用中使用map解决了老师的问题。这好像是最后一次java实验报告,每次写java实验报告前都是很拒绝的,因为感觉要写的很多,但是最后写完之后发现收获也是很大的,可能付出多少就会回报多少吧。以后希望在java学习中取得更大的突破。