题目一:需求:使用数组存储3个学生信息,遍历数组获取到每一个学生信息
package com.shujia.wyh.day18;
/*
需求:使用数组存储3个学生信息,遍历数组获取到每一个学生信息
*/
public class ObjectArrayDemo1 {
public static void main(String[] args) {
Student[] arr = new Student[3];
for(int i=0;i
题目二:集合的嵌套遍历
- 集合的嵌套遍历:
现在数加科技共有3个班级十六期,十七期,十八期
每一期都有不同的学生,十六期有5个学生,十七期有3个学生,十八期有4个学生。
用集合去存储并且遍历每个学生。
最终选择ArrayList去存储
package com.shujia.wyh.day20;
import java.util.ArrayList;
/*
集合的嵌套遍历:
现在数加科技共有3个班级十六期,十七期,十八期
每一期都有不同的学生,十六期有5个学生,十七期有3个学生,十八期有4个学生。
用集合去存储并且遍历每个学生。
最终选择ArrayList去存储
*/
public class ListTest1 {
public static void main(String[] args) {
//创建一个集合代表是数加科技
ArrayList> shuJia = new ArrayList<>();
//创建十六期集合对象
ArrayList sixteenClass = new ArrayList<>();
//创建十七期集合对象
ArrayList seventeenClass = new ArrayList<>();
//创建十八期集合对象
ArrayList eighteenClass = new ArrayList<>();
//创建十六期学生对象
Student s1 = new Student("小张", 17, "十六期");
Student s2 = new Student("小李", 18, "十六期");
Student s3 = new Student("小王", 19, "十六期");
Student s4 = new Student("小赵", 20, "十六期");
Student s5 = new Student("小刘", 21, "十六期");
//创建十七期学生对象
Student ss1 = new Student("张飞", 16, "十七期");
Student ss2 = new Student("刘备", 17, "十七期");
Student ss3 = new Student("关羽", 18, "十七期");
//创建十八期学生对象
Student sss1 = new Student("唐僧", 19, "十八期");
Student sss2 = new Student("孙悟空", 20, "十八期");
Student sss3 = new Student("猪八戒", 18, "十八期");
Student sss4 = new Student("沙僧", 21, "十八期");
//将十六期学员添加到十六期集合中
sixteenClass.add(s1);
sixteenClass.add(s2);
sixteenClass.add(s3);
sixteenClass.add(s4);
sixteenClass.add(s5);
//将十七期学员添加到十七期集合中
seventeenClass.add(ss1);
seventeenClass.add(ss2);
seventeenClass.add(ss3);
//将十八期学员添加到十八期集合中
eighteenClass.add(sss1);
eighteenClass.add(sss2);
eighteenClass.add(sss3);
eighteenClass.add(sss4);
//将各期添加到数加集合中
shuJia.add(sixteenClass);
shuJia.add(seventeenClass);
shuJia.add(eighteenClass);
// System.out.println("数加科技:" + shuJia);
//遍历集合获取元素并打印
//使用增强for循环遍历
for (ArrayList qi : shuJia) {
System.out.println("当前期的学生如下:");
for (Student s : qi) {
System.out.println(s.getName() + "---" + s.getAge() + "---" + s.getClazz());
}
}
//任务:在使用完增强for循环遍历后,尝试使用迭代器遍历
}
}
题目三: 获取10个1-20之间的随机数,要求不能重复使用集合去存
package com.shujia.wyh.day20;
import java.util.ArrayList;
import java.util.Random;
/*
获取10个1-20之间的随机数,要求不能重复
使用集合去存
*/
public class ListTest2 {
public static void main(String[] args) {
//创建一个集合对象存储10个不同的数据
ArrayList list = new ArrayList<>();
//由于不知道要生成多少次,所以用while循环
while (list.size() < 10) {
//生成1-20的随机数
Random random = new Random();
int number = (random.nextInt(20) + 1);
//判断集合中是否包含该元素
if (!list.contains(number)) { // Integer类中重写了equals方法,所以比较的是内容
list.add(number);
}
}
System.out.println("最后的集合为:" + list);
}
}
题目四: 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值集合来使用
/*
键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值
集合来使用
*/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class ListTest3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//创建集合对象
ArrayList list = new ArrayList<>();
boolean flag = true;
while (flag) {
System.out.println("请输入一个数:(输入0为结束使用)");
int number = sc.nextInt();
if (number == 0) {
flag = false;
System.out.println("输入完毕,等待输出最大值。。。");
} else {
list.add(number);
System.out.println("数据录入成功!");
}
}
//Object[] toArray()
//以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
Object[] objects = list.toArray();
//Arrays工具类进行排序
Arrays.sort(objects);
System.out.println("最大值为:" + objects[objects.length - 1]);
}
}
题目五:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
package com.shujia.wyh.day21;
/*
键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
*/
import java.util.Scanner;
import java.util.TreeSet;
public class TreeSetTest1 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//创建一个TreeSet集合对象
TreeSet set = new TreeSet<>();
Student student = null;
//循环添加学生信息
for (int i = 1; i <= 5; i++) {
System.out.println("请输入第" + i + "个学生的信息:");
System.out.println("---------------------------");
System.out.println("请输入学生的姓名:");
String name = sc.next();
System.out.println("请输入学生的语文成绩:");
int chinese = sc.nextInt();
System.out.println("请输入学生的数学成绩:");
int math = sc.nextInt();
System.out.println("请输入学生的英语成绩:");
int english = sc.nextInt();
//创建一个学生对象,将输入的信息赋值给对象的成员变量
student = new Student();
student.setName(name);
student.setChinese(chinese);
student.setMath(math);
student.setEnglish(english);
//将学生对象添加到集合中
set.add(student);
}
System.out.println("===============学生的信息如下======================");
System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩\t总成绩");
//遍历集合获取学生的信息:
for (Student student1 : set) {
System.out.println(student1.getName() + "\t" + student1.getChinese() + "\t" + student1.getMath()
+ "\t" + student1.getEnglish() + "\t" + student1.getSumScore());
}
}
}
题目六: "aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
package com.shujia.wyh.day21;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/*
"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
分析:
1、定义一个字符串(写完之后可以升级成键盘录入)
2、定义一个TreeMap集合对象(考虑自然还是比较器排序)
键:Character
值:Integer
3、将字符串转化成字符数组
4、遍历字符数组得到每一个字符
5、拿着这个字符去集合中找,找看看有没有这个字符作为键存在的,看返回值是什么
是null,说明集合中还没有该字符作为键存在,就把该字符作为键,value设置为1存储
不是null,说明该键已经存在了,把value取出来,加1,重新存储到集合中。
6、使用StringBuffer做字符串拼接
7、遍历集合,获取到键和值,按照对应的输出格式进行输出
8、将StringBuffer转成String输出
输入:"aababcabcdabcde"
输出:a(5)b(4)c(3)d(2)e(1)
*/
import java.util.Scanner;
public class TreeMapTest1 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//1、定义一个字符串(写完之后可以升级成键盘录入)
// String s = "aababcabcdabcde";
System.out.println("请输入要统计的字符串:");
String s = sc.next();
//2、定义一个TreeMap集合对象
TreeMap map = new TreeMap<>();
//3、将字符串转化成字符数组
char[] chars = s.toCharArray();
//4、遍历字符数组得到每一个字符
for (char c : chars) {
//5、拿着这个字符去集合中找,找看看有没有这个字符作为键存在的,看返回值是什么
Integer value = map.get(c);
//是null,说明集合中还没有该字符作为键存在,就把该字符作为键,value设置为1存储
if (value == null) {
map.put(c, 1);
} else {
//不是null,说明该键已经存在了,把value取出来,加1,重新存储到集合中。
value++;
map.put(c, value);
}
}
//6、使用StringBuffer做字符串拼接
StringBuffer sb = new StringBuffer();
//7、遍历集合,获取到键和值,按照对应的输出格式进行输出
Set> entries = map.entrySet();
for (Map.Entry keyValue : entries) {
Character key = keyValue.getKey();
Integer value = keyValue.getValue();
sb.append(key).append("(").append(value).append(")");
}
//8、将StringBuffer转成String输出
String result = sb.toString();
System.out.println("统计的结果为:");
System.out.println(result);
}
}