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月月考生物试卷
网友关注
- 关于我国2012年宏观经济政策取向的观点综述
- 金融学院应届毕业生自荐书模板
- 课堂讨论题目 对中国保险市场需求的预测
- 生源地助学贷款使用手册(高校版)
- 政治经济学读书笔记
- 西方经济作业题思路提示(一)
- 《中国经济周刊》学习资料
- 26江海职业技术学院基建维修工程项目审计办法(暂行)
- stock returns expected returns and real activity
- 801教学讲义
- 《经济统计学原理》在线作业第三次
- 论文
- 货币银行学讲义
- 自考03871市场调查与市场分析复习资料(15)
- 32.桑鹏宇 414分考入天津财经大学西方经济学专业
- 论文
- (自考)2015年自考会计审计学专业复习资料
- 期末复习——中央电大网络广告实务(包过)
- 论文
- 成本会计习题答案
- 宏经名词
- 货币银行学
- 社交礼仪(A)期末考试方案
- 会计学毕业论文致谢词2015
- 研究生学术活动报告情况表一
- lab practice -- Carnival investment and IHOP Investment
- 第一章_货币与信用
- 汇票中的商机
- 一晌贪欢
- 医药论文摘要翻译
网友关注视频
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 冀教版英语五年级下册第二课课程解读
- 8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
- 六年级英语下册上海牛津版教材讲解 U1单词
- 北师大版数学四年级下册3.4包装
- 北师大版数学 四年级下册 第三单元 第二节 小数点搬家
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
- 二年级下册数学第三课 搭一搭⚖⚖
- 七年级英语下册 上海牛津版 Unit9
- 冀教版小学数学二年级下册第二单元《余数和除数的关系》
- 8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
- 沪教版八年级下册数学练习册21.3(2)分式方程P15
- 冀教版小学数学二年级下册第二单元《租船问题》
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 7
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 外研版八年级英语下学期 Module3
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
- 飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
- 外研版英语七年级下册module3 unit2第二课时
- 《小学数学二年级下册》第二单元测试题讲解
- 人教版历史八年级下册第一课《中华人民共和国成立》
- 外研版英语三起5年级下册(14版)Module3 Unit2
- 七年级下册外研版英语M8U2reading
- 冀教版小学英语四年级下册Lesson2授课视频
- 沪教版八年级下册数学练习册21.3(3)分式方程P17
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理