目录
第一题
思路分析:
第二题
第三题
思路分析:
第一题
代码演示:
思路分析:
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();使用这种方法也是可以的*/}
}