命名要求:
1. 类名,接口名,枚举名,注解名使用大驼峰
2. 变量名,方法名,包名均使用小驼峰
3. 常量名全大写,多个单词下划线分割
4. 名字要见名知意,如果不知道对应的英文,可以使用拼音代替。不可使用无意义字符
代码规范:
格式要良好,使用IDEA格式化缩进(快捷键:Ctrl+Alt+L)
答题规范:
1. 每道题完整代码请贴入对应题目中的代码区。
2. 如果有运行结果的,请把代码运行结果放到文档中
【TreeSet】
题目1
需求:
利用TreeSet实现以下需求:
- 随机生成10个不同的0~50之间的整数,要求按照从小到大进行遍历。
- 随机生成10个不同的50~100之间的整数,要求按照从大到小进行遍历。
思路分析:
TreeSet是具有排序特性的,默认按照自然排序。如果自然排序满足不了需求,可以使用自定义比较器。
需求1,可以使用自然排序实现;需求2可以使用自定义比较器实现
答案:
package com.itheima.homework.test1;
import java.util.Comparator;
import java.util.Random;
import java.util.TreeSet;
/*
需求:
利用TreeSet实现以下需求:
1. 随机生成10个不同的0~50之间的整数,要求按照从小到大进行遍历。
2. 随机生成10个不同的50~100之间的整数,要求按照从大到小进行遍历。
思路分析:
TreeSet是具有排序特性的,默认按照自然排序。如果自然排序满足不了需求,可以使用自定义比较器。
需求1 : 可以使用自然排序实现;
需求2 : 可以使用自定义比较器实现
*/
public class Test1 {
public static void main(String[] args) {
TreeSet<Integer> ts = new TreeSet<>();
Random r = new Random();
// 1. 随机生成10个不同的0~50之间的整数,要求按照从小到大进行遍历。
for (int i = 0; i < 10; i++) {
int number = r.nextInt(51);// 0~50之间的整数
ts.add(number);// 把随机数添加到集合中
}
System.out.println(ts);
System.out.println("========================");
TreeSet<Integer> ts2 = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
// 2. 随机生成10个不同的50~100之间的整数,要求按照从大到小进行遍历
// 1. 随机生成10个不同的0~50之间的整数,要求按照从小到大进行遍历。
for (int i = 0; i < 10; i++) {
int number = r.nextInt(51);// 0~50之间的整数
ts2.add(number);// 把随机数添加到集合中
}
System.out.println(ts2);
}
}
打印结果:
[1, 4, 7, 10, 19, 28, 31, 47, 48]
========================
[45, 40, 30, 25, 23, 17, 15, 7, 2]
【Collections】
题目2
请定义一个可以存储“整数”的集合,并存储一些数据。
请按以下要求顺序编程实现:
- 对集合中的数据打乱顺序;
- 打印集合
- 对集合中的数据进行升序排序
- 打印集合
- 对集合中的数据进行降序排序(要实现排序,不可以倒序遍历实现)
- 打印集合
答案:
package com.itheima.homework.test2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
请定义一个可以存储“整数”的集合,并存储一些数据。
请按以下要求顺序编程实现:
1 对集合中的数据打乱顺序;
2 打印集合
3 对集合中的数据进行升序排序
4 打印集合
5 对集合中的数据进行降序排序(要实现排序,不可以倒序遍历实现)
6 打印集合
*/
public class Test2 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
// 1 对集合中的数据打乱顺序
Collections.shuffle(list);
System.out.println(list);
// 2 对集合中的数据进行升序排序
Collections.sort(list);
System.out.println(list);
// 3 对集合中的数据进行降序排序(要实现排序,不可以倒序遍历实现)
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(list);
}
}
打印结果:
[20, 40, 10, 30]
[10, 20, 30, 40]
[40, 30, 20, 10]
【排序,查找】
题目3
编程题【冒泡排序】
请按以下要求顺序编写程序:
- 定义测试类,定义main()方法;
- 定义以下数组:
int[] arr = {1,2,432,32,54,32,3,7,657,563,25,43,6,463,52};
- 用Arrays类打印此数组的所有元素;
- 用“冒泡排序”对数组元素“升序”排序;打印排序后的数组。
思路:
参考课堂内容
答案:
package com.itheima.homework.test3;
import java.util.Arrays;
/*
编程题【冒泡排序】
请按以下要求顺序编写程序:
1. 定义测试类,定义main()方法;
2. 定义以下数组:`int[] arr = {1,2,432,32,54,32,3,7,657,563,25,43,6,463,52};`
3. 用Arrays类打印此数组的所有元素;
4. 用“冒泡排序”对数组元素“升序”排序;打印排序后的数组。
*/
public class Test3 {
public static void main(String[] args) {
int[] arr = {
1