java day12

1、 基础案例

1. 训练案例1

1.1. 训练描述:【HashSet类】

1、 需求说明:自定义一个学生类,给出成员变量name和age,使用HashSet集合存储自定义对象并遍历,遍历集合的时候,在控制台输出学生对象的成员变量值。要求使用两种方式进行遍历(迭代器、增强for)。

2、 当上述内容解决完毕以后,如果集合中存储的学生对象,年龄和姓名都相同,认为是同一个人,就不存储在集合中,该如何做呢。

1.2. 操作步骤描述

1. 创建学生类。

2. 创建集合对象。

3. 创建元素对象。

4. 把元素添加到集合。

5. 遍历集合。

6. 为了保证集合存储元素的唯一性,需要在学生类中重写equals()和hashCode()方法。

2. 训练案例2

2.1. 训练描述:【HashMap】

3、 需求说明:自定义一个学生类,给出成员变量name和age,创建HashMap集合键是String,代表学号,值是自定义学生对象,代表每一个学生,给集合中添加一些元素,并使用两种方式遍历HashMap集合。

2.2. 操作步骤描述

1. 创建学生类。

2. 创建集合对象。

3. 创建学生对象。

4. 把元素添加到集合。

5. 遍历集合。

3. 训练案例3

3.1. 训练描述:【HashMap】

1、 需求说明:自定义一个学生类,给出成员变量name和age,创建HashMap集合键是自定义学生对象,代表每一个学生,值是String,代表学生地址,给集合中添加一些元素,并使用两种方式遍历HashMap集合。如果学生对象的成员变量值相同,就说明是同一个键。

3.2. 操作步骤描述

1. 创建学生类。

2. 创建集合对象。

3. 创建元素对象。

4. 把元素添加到集合。

5. 遍历集合。

4. 训练案例4

4.1. 训练描述:【ArrayList类、HashMap】

1、 需求说明:ArrayList集合嵌套HashMap集合并遍历。

定义一个ArrayList集合,它包含三个元素,每一个元素都是HashMap类型的。每一个HashMap集合的键和值都是String类型的,

键:String​​丈夫的姓名

值:String​​妻子的姓名

给出如下的字符串数据,请用代码实现需求。

第一个HashMap集合的元素:

孙策​​大乔

周瑜​​小乔

第二个HashMap集合的元素:

郭靖​​黄蓉

杨过​​小龙女

第三个HashMap集合的元素:

令狐冲​任盈盈

​林平之​岳灵珊 

4.2. 操作步骤描述

5. 训练案例5

5.1. 训练描述:【ArrayList类、HashMap】

2、 需求说明:HashMap集合嵌套ArrayList集合并遍历。

定义一个HashMap集合,它包含三个元素,每一个元素的键是String类型,值是ArrayList类型。

键:String​​​人物来自哪部电视剧

值:ArrayList​​人物的名称

每一个ArrayList集合的数据是String类型的。

给出如下的字符串数据,请用代码实现需求。

第一个ArrayList集合的元素:(三国演义)

​诸葛亮

​赵云

第二个ArrayList集合的元素:(西游记)

唐僧

孙悟空

第三个ArrayList集合的元素:(水浒传)

武松

鲁智深

5.2. 操作步骤描述

2、 扩展案例

1. 训练案例1

1.1. 训练描述:

1、 分析以下需求,并用代码实现:

1. 定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的

2. 利用集合的知识对数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序

3. 打印新数组中的内容按照以下描述完成类的定义。

1.2. 操作步骤描述

2. 训练案例2

2.1. 训练描述:

1、 需求分析:键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符

2.2. 操作步骤描述

1. 键盘录入字符串

2. 遍历字符串,将每个字符存储到集合中

3. 将集合中重复的字符去掉

4. 创建新集合,遍历老集合,获取老集合中的元素,判断新集合中是否包含这个元素

a) 如果不包含,则将这个元素添加到新集合中

5. 清空老集合中元素

6. 将新集合中的元素添加到老集合中

7. 遍历老集合

3. 训练案例3

3.1. 训练描述:

1、 分析以下需求,并用代码实现

1. 产生10个1-20之间的随机数要求随机数不能重复

2. 产生10个长度为10的不能重复的字符串(里面只能出现大写字母、小写字母、0-9的数字),并遍历打印输出

3.2. 操作步骤描述

4. 训练案例4

4.1. 训练描述:

1、 分析以下需求,并用代码实现

1. 利用键盘录入,输入一个字符串

2. 统计该字符串中各个字符的数量(提示:字符不用排序)

3. 如:

用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"

程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)

4.2. 操作步骤描述

1. 创建map集合,键为Character,值为Integer

2. 键盘录入字符串 str

3. 将字符串转换为字符数组,并遍历这个字符数组,获取每个字符

4. 在循环中判断集合中map集合中的键是否包含这个字符,如果map集合中的键不包含这

a) 个字符,那么就让map执行put方法,键就是遍历到的字符,值为1

b) 如果map集合中包含这个键,就让map集合的值 + 1存储

5. 循环完毕后,遍历map集合进行打印,打印过程中按照指定格式来进行。

5. 训练案例5

5.1. 训练描述:

1、 分析以下需求,并用代码实现

1. 统计每个单词出现的次数

2. 有如下字符串"If you want to change your fate I think you must come to the dark horse to learn java"(用空格间隔)

3. 打印格式:

to=3

think=1

​​​​​you=2

//........

5.2. 操作步骤描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值