集合练习(1)

news/2024/11/28 8:51:05/

目录

第一题

思路分析:

第二题

第三题

思路分析:


第一题

代码演示:

思路分析:

1.因为我们在打印的时候,是需要打印一个标题的信息即可,所以在使用构造器初始化的时候,只需要写一个带参数的构造器即可

2.在进行倒叙遍历的时候,因为集合的下标是从0开始的,所以在i=arrayList,size()需要减一,否则会下标越界

3.对于新闻字体的表示超过15个字的来说,就是对字符串一些方法的运用,并且需要用到向下转型,因为需要使用子类的属性和方法

4.对于对标题的处理,我们编写一个方法,一进入该方法,先判断要处理的字符串是否为空,如果为空直接返回一个空,然后就是对字符串的处理了,这里我使用的subString方法,字符串截取,该方法有两个参数,第一个参数填的是,从那个位置开始截取,第二个参数表示,截取到那一个位置

package idea.chapter14.homework;import java.util.ArrayList;/*
(1)封装一个新闻类,包含标题和内容属性,提供get、set方法,重写toString方法,打印对象时只打印标题;
(2)只提供一个带参数的构造器,实例化对象时,只初始化标题;并且实例化两个对象:
新闻一:新冠确诊病例超千万,数百万印度教信徒赴恒河“圣浴”引民众担忧
新闻二:男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生
(3)将新闻对象添加到ArrayList集合中,并且进行倒序遍历;
(4)在遍历集合过程中,对新闻标题进行处理,超过15字只保留前15个,然后在后边加”...”
(5)在控制台打印遍历出经过处理的新闻标题;*/
@SuppressWarnings({"all"})
public class Homework01 {public static void main(String[] args) {//创建了一个ArrayList集合ArrayList arrayList = new ArrayList();//添加两个元素arrayList.add(new Journalism("新闻一:新冠确诊病例超千万,数百万印度教信徒赴恒河“圣浴”引民众担忧"));arrayList.add(new Journalism("新闻二:男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生"));//倒序遍历for (int i = arrayList.size() - 1; i >= 0; i--) {//向下转型,因为要使用子类的属性和方法Journalism m = (Journalism) arrayList.get(i);System.out.println(handle(m.getLabel()));}}//该方法用于处理字符串,如果该字符串的长度超过了一定范围,就按照指定的方式进行处理public static String handle(String label) {//判断标签是否为null 如果为null返回空if (label == null) {return "";}//标题不为null时if (label.length() > 15) {//如果标题的长度大于15,就按照要求进行处理//用到String类的substring()方法,截取指定范围的子串return label.substring(0, 15) + "...";} else {//如果标题的长度小于15,就直接返回标题return label;}}
}class Journalism {//标签private String label;//内容private String content;public Journalism(String label) {this.label = label;}public String getLabel() {return label;}public void setLabel(String label) {this.label = label;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}@Overridepublic String toString() {return "Journalism{" +"label='" + label + '\'' +'}';}
}

第二题

代码演示:

思路分析:
isEmpty:判断是否为空 该方法会返回一个布尔值,如果为空返回的就是true反之就是false

 * 使用ArrayList 完成对 对象 Car {name, price} 的各种操作
 * 1.add:添加单个元素
 * 2.remove:删除指定元素
 * 3.contains:查找元素是否存在
 * 4.size:获取元素个数
 * 5.isEmpty:判断是否为空
 * 6.clear:清空
 * 7.addAll:添加多个元素
 * 8.containsAll:查找多个元素是否都存在
 * 9.removeAll:删除多个元素
 * 使用增强for和 迭代器来遍历所有的car , 需要重写 Car 的toString方法

package idea.chapter14.homework;import java.util.ArrayList;
import java.util.Iterator;/**/
@SuppressWarnings({"all"})
public class Homework02 {public static void main(String[] args) {ArrayList arrayList = new ArrayList();Car car = new Car("宝马", 400000);Car car2 = new Car("宾利", 5000000);//        * 1.add:添加单个元素arrayList.add(car);arrayList.add(car2);//        * 2.remove:删除指定元素arrayList.remove(car);//        * 3.contains:查找元素是否存在//因为我们在上面已经删除了car对象,所以这里返回的就是falseSystem.out.println(arrayList.contains(car));//        * 4.size:获取元素个数System.out.println(arrayList.size());//        * 5.isEmpty:判断是否为空System.out.println(arrayList.isEmpty());//        * 6.clear:清空//arrayList.clear();//        7.addAll:添加多个元素ArrayList arrayList1 = new ArrayList();arrayList1.add(new Car("大众", 1234));arrayList1.add(new Car("奥迪", 12345));arrayList.addAll(arrayList1);System.out.println(arrayList);//8.containsAll:查找多个元素是否都存在System.out.println(arrayList.containsAll(arrayList1));//9.removeAll:删除多个元素System.out.println(arrayList.removeAll(arrayList1));//删除成功返回true//        * 使用增强for和 迭代器来遍历所有的car , 需要重写 Car 的toString方法//使用增强for循环for (Object o : arrayList) {System.out.println(o);}//使用迭代器Iterator iterator = arrayList.iterator();while (iterator.hasNext()) {Object next = iterator.next();System.out.println(next);}}
}class Car {private String name;private double price;public Car(String name, double price) {this.name = name;this.price = price;}@Overridepublic String toString() {return "Car{" +"name='" + name + '\'' +", price=" + price +'}';}
}

第三题

代码演示:

思路分析:

1.为Jack的工资修改为2600的本质就是,覆盖原来的值,因为hashMap不能添加重复的元素,如何 添加重复的元素,会加入不进去,但是会覆盖之前的内容,所以在加入一个key为jack value为2600的即可

2.为所有员工的工资增加100先得到所有的key然后根据得到的key 使用hashMap 的get方法得到value,然后在为他们都加上100 然后需要强转类型,转成Integer

3.遍历集合中所有的工资,也就是不用key,那么有两个方法,第一种是得到所有的key,然后在根据得到的key通过hashMap的get方法得到value 或者就是因为HashMap实现了Entry接口 ,在Entry接口中,提供了getKey() 和 getValue();使用这种方法也是可以的

package idea.chapter14.homework;import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;/*
3.编程题Homework03.java
按要求完成下列任务
1)使用HashMap类实例化一个Map类型的对象m,键(String)和值(int)分别用于存储员工的姓名和工资,存入数据如下: jack—650元;tom—1200元;smith—2900元;
2)将jack的工资更改为2600元
3)为所有员工工资加薪100元;
分匀遍历集合中所有的员工
遍历集合中所有的工资*/
@SuppressWarnings({"all"})
public class Homework03 {public static void main(String[] args) {HashMap hashMap = new HashMap();hashMap.put("jack", 650);//虽然我们value传入的是int但是底层会自动装箱转成IntegerhashMap.put("tom", 1200);hashMap.put("simth", 2900);//2)将jack的工资更改为2600元//该要求其实就是覆盖,在添加一个键值为key为Jack的就可以了hashMap.put("jack", 2600);Set KeySet = hashMap.keySet();for (Object key : KeySet) {//keySet里面存放的就是我们的键,提供键值找到value在加100即可实现  但是要将类型转换,因为类型是Object所以需要向下转型,转成IntegerhashMap.put(key, (Integer) hashMap.get(key) + 100);}System.out.println(hashMap);//分匀遍历集合中所有的员工Iterator iterator = KeySet.iterator();while (iterator.hasNext()) {Object next = iterator.next();System.out.println(next);}//遍历集合中所有的工资.相当于只遍历工资,也就是只要valueSystem.out.println("之遍历工资");for (Object o : KeySet) {//此时o就是我们keySystem.out.println(hashMap.get(o));}/*思路分析:1.为Jack的工资修改为2600的本质就是,覆盖原来的值,因为hashMap不能添加重复的元素,如何 添加重复的元素,会加入不进去,但是会覆盖之前的内容,所以在加入一个key为jack value为2600的即可2.为所有员工的工资增加100先得到所有的key然后根据得到的key 使用hashMap 的get方法得到value,然后在为他们都加上100 然后需要强转类型,转成Integer3.遍历集合中所有的工资,也就是不用key,那么有两个方法,第一种是得到所有的key,然后在根据得到的key通过hashMap的get方法得到value 或者就是因为HashMap实现了Entry接口 ,在Entry接口中,提供了getKey() 和 getValue();使用这种方法也是可以的*/}
}


http://www.ppmy.cn/news/61820.html

相关文章

如何在JAVA中实现面向对象编程?

在Java中,面向对象编程是一种重要的编程范式。它通过将现实世界中的实体抽象为类,将类实例化为对象,并通过对象之间的互动来实现软件系统的设计和实现。 以下是在Java中实现面向对象编程的一些基本概念和技术: 类和对象 类是一…

通俗易懂理解RDD看这一篇就够了

前言 今天面试一个大数据开发工程师,spark相关的知识感觉都能懂一点,但是连基础的RDD稍微一问深一点就不知所云,这种情况基本上是无法通过面试的,今天想用通俗的话把RDD说明白。 RDD简介 RDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark中最基本的数据抽…

IDEA快捷键

文章目录 快捷键介绍重点掌握CtrlAltShiftCtrl AltCtrl ShiftAlt ShiftCtrl Shift Alt其他 快捷键介绍 重点掌握 psvmmain函数sout输出soutv带变量名输出.sout变量.调用 输出变量值.if布尔值.调用 生成if语句.for数组类型变量.for 生成for语句.var补全接收的变量&#x…

【实战项目开发技术分享】DevOps开发流程

文章目录 前言一、DevOps基本概念1.1 DevOps定义1.2 DevOps的目标1.3 DevOps的基本原则1.4 DevOps流程二、DevOps流程应用2.1 机器人开发中的DevOps流程。2.2 自动驾驶开发中的DevOps流程三、总结前言 当今软件开发中,DevOps已成为一种重要的流程模型,能够提升软件开发过程的…

聊聊JavaScript性能优化!

随着软件开发行业的发展,性能优化是一个不可避免的话题,那么什么样的行为才能算作性能优化呢?本质上来说,任何能提高运行效率,降低运行开销的行为,都可以算作性能优化的操作。那么JavaScript语言的优化从理…

亚马逊选品有什么技巧?品选对了可以带来什么好处?

选品一直是很多亚马逊卖家心中的痛点,选品选不好,自然后续的工作也很难进行。想在这个平台上挑选出实现销售和盈利的产品并不是一件容易的事情。 因此,在选品方面,卖家们需要从市场需求、产品利润、稳定需求量、买家反馈、类别结构…

Java时间类(八)-- Instant (时间戳类)(常用于Date与LocalDateTime的相互转化)

目录 1. Instant的概述: 2. Instant的常见方法: 3. Date --->Instant--->LocalDateTime 4. LocalDateTime --->Instant--->Date 1. Instant的概述

Servlet基础(创建、运行原理、API)

目录 一、创建 Servlet 项目 1、创建项目 2、引入依赖 3、创建目录 4、编写代码 5、使用 Tomact 直接运行 (打包程序、部署程序、验证程序) 二、Servlet 运行原理 1、接收请求 2、根据请求计算响应 3、返回响应 三、Servlet API 1、HttpServl…