教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 高等教育> 理学> 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月月考生物试卷

网友关注视频

第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