教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 高等教育> 理学> Java入门经典第9章集合类及项目习题答案

Java入门经典第9章集合类及项目习题答案

上传者:贾芾龄
|
上传时间:2015-05-06
|
次下载

Java入门经典第9章集合类及项目习题答案

Java入门经典 第二篇 核心技术篇 第9章 集合类

第9章 集合类

学习Java语言,就必须学习如何使用Java的集合类。Java的集合类就像一个容器,用来存放Java类的对象。有些容器内部存放的东西在容器内部是不可能操作的,如水桶里面装的水,除了将其装入和倒出之外,就不能再进行别的操作了,但是很容易装入和倒出,而有些容器内部存放的东西在容器内部则是可操作的,如衣柜里面摆放的衣服,不仅可以将衣服存放到衣柜中,还可以将衣服有序地摆放,以便在使用时快速地查找,但是却不容易取出,像那些存放在柜子底部的衣服。Java的集合类也是如此,有些是方便放入和取出的,而有些又是方便查找的。

通过本章的学习,希望读者可以达到以下的学习目的:

□ 了解什么是集合类。

□ 掌握Collection集合中的常用方法。

□ 掌握List集合的特点。

□ 掌握Set集合的特点。

□ 掌握Map集合的特点。

□ 学会灵活地使用各种集合。

9.1 集合类概述

java.util包中提供了一些集合类,常用的有List、Set和Map,其中,List和Set继承Collection接口。这些集合类又称为容器,它们与数组不同,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型的数据,集合用来存放类对象的引用。

List接口、Set接口、Map接口及Collection接口的主要特征如下。

□ Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用。

□ List接口继承自Collection接口,List接口允许存放重复的对象,排序方式按照对象的插入顺序。

□ Set接口继承自Collection接口,Set接口不允许存放重复的对象,排序方式按照自身内部的排序规则。

□ Map接口以键值对(key-value)的形式存放对象,其中,键(key)对象不可以重复,值(value)对象可以重复,排序方式按照自身内部的排序规则。

上述集合类的继承关系如图9.1所示。

内容需要下载文档才能查看

本书免费提供学习之用,请支持正版图书。 188 制作人:科技强国

Java入门经典 第二篇 核心技术篇 第9章 集合类

9.2 Collection接口的常用方法

Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用,不过,Collection接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作,因为List接口和Set接口继承自Collection接口,所以这些方法对List集合和Set集合是通用的。下面介绍Collection接口中常用的方法。

9.2.1 addAll()方法

addAll()方法将指定Collection中的所有元素都添加到此Collection中。如果在进行此操作的同时修改了指定的Collection,那么将不能保证此操作的正确性。

【例9.1】 在项目中创建类TestCollection,在该类的主方法中定义Collection集合,并通过add()方法向集合中添加String类型对象,通过addAll()方法将该集合中的所有对象都添加到另一个Collection集合中。

实例位置:光盘\MR\源码\第9章\9.1

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class P193TestCollection {

} public static void main(String[] args) { } String apple = "apple"; String banana = "banana"; String pear = "pear"; Collection <String> list =new ArrayList<String>(); list.add(apple);//通过add()方法添加指定对象到集合中 list.add(banana); Collection<String> list2=new ArrayList<String>(); //通过addAll()方法添加指定集合中的所有对象到该集合中 list2.addAll(list); list2.add(pear); Iterator<String> it = list2.iterator(); //通过iterator()方法序列化集合中的所有对象 while(it.hasNext()){ String str = it.next().toString();//获取集合中的各个元素 System.out.println(str);//将元素输出 }

注意 由于Collection是接口,因此不能对其实例化,因为ArrayList类是Collection接口的间接实现类,所以通过ArrayList类实例化。

执行上面的代码,运行结果如图9.2所示。

本书免费提供学习之用,请支持正版图书。 189 制作人:科技强国

Java入门经典 第二篇 核心技术篇 第9章 集合类

图9.2 【例9.1】的运行结果

从图9.3中可以看出addAll()方法的执行过程。

内容需要下载文档才能查看

9.2.2 removeAll()方法

从指定的集合中移除包含在另一个集合中的元素,返回值为boolean类型,如果包含要移除的对象则返回true,否则返回false。

【例9.2】 在项目中创建类TestCollection,在该类的主方法中定义Collection集合list与list2,并分别向这两个集合添加String类型对象。

实例位置:光盘\MR\源码\第9章\9.2

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class P194TestCollection {

public static void main(String[] args) { String a = "上海路",b="人们大街",c="长春大街";//定义String对象 Collection<String> list = new ArrayList<String>();//定义Collection集合对象 list.add(a); list.add(b); Collection<String> list2 = new ArrayList<String>(); //定义Collection集合对象 list2.add(b); //向集合中添加对象 list2.add(c); boolean isContains = list.removeAll(list2); //从集合中移除同时包含在另一个集合中的元素 System.out.println("集合list与list2是否包含有重复元素:"+isContains);

本书免费提供学习之用,请支持正版图书。 190 制作人:科技强国

内容需要下载文档才能查看

Java入门经典 第二篇 核心技术篇 第9章 集合类

} } Iterator<String> it = list.iterator();//创建集合的迭代器 System.out.print("执行removeAll()方法后list集合中的元素:"); while (it.hasNext()){ String str = it.next(); System.out.print(" "+str+" ");//输出集合中的元素 }

运行本例,结果如图9.4所示。

内容需要下载文档才能查看

本实例的执行顺序如图9.5所示。

内容需要下载文档才能查看

9.2.3 retainAll()方法

retainAll()方法仅保留该集合中同时包含在指定集合中的对象,其他的全部移除,与removeAll()方法正好相反。返回值为boolean型,如果存在符合移除条件的对象则返回true,否则返回false。

【例9.3】 在项目中创建类TestCollection,在该类的主方法中定义两个Collection集合,并分别向这两个集合中添加对象,使用retainAll()方法保留在集合1中与集合2中都存在的对象。

实例位置:光盘\MR\源码\第9章\9.3

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

本书免费提供学习之用,请支持正版图书。 191 制作人:科技强国

Java入门经典 第二篇 核心技术篇 第9章 集合类 public class P195TestCollection {

} public static void main(String[] args) { } String a="上海路",b="长春大街",c="北京大街";//定义String类型对象 Collection<String> list = new ArrayList<String>();//创建Collection对象 list.add(a); //向集合中添加对象 list.add(b); Collection<String> list2 = new ArrayList<String>();//创建集合对象 list2.add(b); list2.add(c); boolean isContains = list.retainAll(list2); //保留list集合中同时包含正在list2中的元素 System.out.println("集合list与list2是否包含有重复元素:"+isContains); System.out.println("执行retainAll方法后List集合中的元素为:"); Iterator<String> it = list.iterator();//创建集合迭代器 while (it.hasNext()){ //循环遍历迭代器 String str =it.next();//获取集合中对象 System.out.print(" "+str+" ");//将对象输出 }

运行程序,由于list与list2都包含对象“长春大街”,因此执行retainAll()方法的结果如图

9.6所示。

内容需要下载文档才能查看

图9.6 【例9.3】的运行结果

从图9.7中可以更加清楚地看到两个集合执行retainAll()方法的返回值。

内容需要下载文档才能查看

本书免费提供学习之用,请支持正版图书。 192 制作人:科技强国

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

2018湖南省考行测题库:行测每日一练常识判断练习题答案08.15
2018湖南省考行测题库:行测每日一练常识判断练习题08.15
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.11
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.23
2018湖南省考行测题库:行测每日一练言语理解与表达练习题答案08.21
2018湖南省考行测题库:行测每日一练资料分析练习题08.10
2018湖南省考行测题库:行测每日一练判断推理练习题答案08.23
2018湖南省考行测题库:行测每日一练资料分析练习题答案08.17
2018湖南省考行测题库:行测每日一练资料分析练习题答案08.10
2018湖南省考行测题库:行测每日一练言语理解与表达练习题08.21
2018湖南省考申论每周一练答案:品牌建设
2018湖南省考行测题库:行测每日一练常识判断练习题08.22
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.17
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.21
2018湖南省考行测题库:行测每日一练判断推理练习题答案08.16
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.10
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.17
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.10
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.8
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.14
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.4
2018湖南省考行测题库:行测每日一练资料分析练习题08.17
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.16
2018湖南省考行测题库:行测每日一练判断推理练习题答案08.09
2018湖南省考面试题库:面试每日一练结构化面试模拟题8.15
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.18
2018湖南省考行测题库:行测每日一练常识判断练习题答案08.22
2018湖南省考申论每周一练:品牌建设
2018湖南省考面试题库:面试每日一练结构化面试模拟题答案8.8
2018湖南省考行测题库:行测每日一练判断推理练习题08.09

网友关注视频

苏教版二年级下册数学《认识东、南、西、北》
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
冀教版小学英语四年级下册Lesson2授课视频
苏科版数学 八年级下册 第八章第二节 可能性的大小
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
苏科版数学八年级下册9.2《中心对称和中心对称图形》
外研版英语七年级下册module3 unit2第一课时
冀教版英语四年级下册第二课
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
8.对剪花样_第一课时(二等奖)(冀美版二年级上册)_T515402
外研版英语七年级下册module3 unit1第二课时
化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
沪教版牛津小学英语(深圳用) 五年级下册 Unit 7
北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
第8课 对称剪纸_第一课时(二等奖)(沪书画版二年级上册)_T3784187
冀教版小学数学二年级下册第二单元《余数和除数的关系》
苏科版八年级数学下册7.2《统计图的选用》
二年级下册数学第二课
外研版英语七年级下册module1unit3名词性物主代词讲解
沪教版八年级下册数学练习册21.3(3)分式方程P17
冀教版小学数学二年级下册1
每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
3月2日小学二年级数学下册(数一数)
沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8