目录
第一题
代码演示:
思路分析:
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;
}
@Override
public 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对象,所以这里返回的就是false
System.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;
}
@Override
public 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但是底层会自动装箱转成Integer
hashMap.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所以需要向下转型,转成Integer
hashMap.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);
}
//遍历集合中所有的工资.相当于只遍历工资,也就是只要value
System.out.println("之遍历工资");
for (Object o : KeySet) {
//此时o就是我们key
System.out.println(hashMap.get(o));
}
/*
思路分析:
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();使用这种方法也是可以的
*/
}
}