第一题
创建一个元素是字符串的ArrayList对象,在其中添加若干元素,通过使用索引循环访问将其中每个字符串转换成大写
代码一
package com.hzcollege.Arr;
import java.util.ArrayList;
import java.util.Iterator;
/**
* @author hhh
* @version 1.8.0
* 创建一个元素是字符串的ArrayList对象,在其中添加若干元素
* 通过使用索引循环访问将其中每个字符串转换成大写
*/
public class Transition {
public static void main(String[] args) {
//创建元素为字符串的ArrayList对象
ArrayList< String > arrs = new ArrayList<>();
//调用add方法添加元素
arrs.add("can");
arrs.add("not");
arrs.add("go");
arrs.add("back");
//method_1
for (int i = 0; i < arrs.size(); i++){
//获取元素
String str = arrs.get(i);
//转换成大写字母
str = str.toUpperCase();
//修改当前元素
arrs.set(i,str);
}
//输出数组中的元素
System.out.println("method_2");
System.out.println(arrs);
//method_2
//获取迭代器
Iterator<String> itr = arrs.iterator();
ArrayList<String> arrs1 = new ArrayList<>();
// hasNext() 用于检测集合中是否还有元素
while (itr.hasNext()){
// next() 会返回迭代器的下一个元素,并且更新迭代器的状态
String str = (String)itr.next();
//转换成大写字母
str = str.toUpperCase();
//remove() 将迭代器返回的元素删除
itr.remove();
//调用add方法添加元素
arrs1.add(str);
}
//将元素全部添加到arrs中,覆盖之前的元素
arrs.addAll(arrs1);
//输出数组中的元素
System.out.println("method_2");
System.out.println(arrs);
//method_3
//将数组中所有String元素转换成大写
arrs.replaceAll(String::toUpperCase);
//输出数组中的元素
System.out.println("method_3");
System.out.println(arrs);
}
}
运行结果一
第二题
编写程序,将一个字符串中的单词解析出来,然后将它们添加到一个HashSet中,并输出每个重复的单词,不同单词的个数及消除重复单词后的列表
代码二
package com.hzcollege.Arr;
import java.util.HashSet;
import java.util.Set;
/**
* @author hhh
* @version 1.8.0
* 编写程序,将一个字符串中的单词解析出来,然后将它们添加到一个HashSet中
* 并输出每个重复的单词,不同单词的个数及消除重复单词后的列表
*/
public class Find {
public static void main(String[] args) {
String s = "Can not go back Do not look back";
//创建元素为字符串的set对象,set集合不存在重复单词
//存放不重复单词
Set<String> ss = new HashSet<>();
//存放重复单词
Set<String> ss1 = new HashSet<>();
//将一个字符串分割为子字符串,然后将结果作为字符串数组返回
String[] arr = s.split(" ");
//增强for循环,为set集合添加元素
for (String str : arr) {
//如果不重复添加到ss,如果重复添加到ss1
if (!ss.add(str)) {
ss1.add(str);
}
}
System.out.println("重复的单词:" + ss1);
System.out.println("不同单词的个数:" + ss.size());
System.out.println("消除重复单词后的列表:" + ss);
}
}
运行结果二
第三题
定义Student类,有学号ID、姓名name、年龄age等属性,要求按照学号依次输出学生信息
代码三
package com.hzcollege.Arr;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author hhh
* @version 1.8.0
* 定义Student类,有学号ID、姓名name、年龄age等属性
* 要求按照学号依次输出学生信息
*/
public class Student implements Comparable<Student>{
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student() {
}
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
//按升序排序
@Override
public int compareTo(Student st) {
return this.id - st.id;
}
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
list.add(new Student(1, "一号", 19));
list.add(new Student(3, "三号", 20));
list.add(new Student(2, "二号", 18));
//调用sort方法进行排序
Collections.sort(list);
for (Student s : list) {
System.out.println(s);
}
}
}
运行结果三
总结
掌握ArrayList类的使用,以及add() 方法,addAll()方法,replaceAll()方法的使用
迭代器的使用,其中hasNext() 用于检测集合中是否还有元素, next() 会返回迭代器的下一个元素,并且更新迭代器的状态,remove() 将迭代器返回的元素删除
String类中的toUpperCase()方法,是将其转化成大写字母
split()将一个字符串分割为子字符串,然后将结果作为字符串数组返回
熟悉了Set接口和HashSet实现类的使用 ,Set集合中不会有重复元素出现
实现Comparable< T >接口需要重写compareTo()方法,然后使用Collections类的sort()方法对集合对象进行排序