JAVA编程学习记录-集合练习
发布日期:2021-07-23 18:13:32
浏览次数:1
分类:技术文章
本文共 6543 字,大约阅读时间需要 21 分钟。
Java编程学习记录-集合练习
1.使用ArrayList集合去完成下面的功能键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值
package homework_num4;/** * 要求:使用ArrayList集合去完成下面的功能键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 */import java.util.ArrayList;import java.util.Arrays;import java.util.Scanner;public class Homework { public static void main(String[] args) { // 因为未知元素个数,所以创建集合存储元素 ArrayListl = new ArrayList (); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 因为不知道要录入多少数据,所以采用while循环 while (true) { System.out.println("请输入一个数"); int num = sc.nextInt(); // 当录入值为零事跳出循环停止录入 if (num == 0) { break; } // 将获取的值添加到集合中 l.add(num); } // int max = 0; // for(Integer it : l) { // if(max T[] toArray(T[] a) Integer[] arr = new Integer[l.size()]; // 集合转数组 l.toArray(arr); // 数组由小到大自动排序 Arrays.sort(arr); // 定义最大值为数组的最后一个数,最后一个数为数组长度减一 int max = arr[arr.length - 1]; // 输出最大值 System.out.println("最大值为:" + max); }}
2.键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
a:自然排序
主函数
package homework_num1a;/** * 需求 * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 * * 自然排序内容 * */import java.util.TreeSet;public class Num1Demo { public static void main(String[] args) { //创建TreeSet集合,实现对该类型自然排序 TreeSetts = new TreeSet (); // 创建学生类对象 Student s = new Student(); // 创建接收对象 String name = ""; int a = 0; int b = 0; int c = 0; System.out.println("请依次输入5个学生的姓名、语文成绩、数学成绩、英语成绩"); Student s1 = s.getDate(name, a, b, c); Student s2 = s.getDate(name, a, b, c); Student s3 = s.getDate(name, a, b, c); Student s4 = s.getDate(name, a, b, c); Student s5 = s.getDate(name, a, b, c); // 添加元素 ts.add(s1); ts.add(s2); ts.add(s3); ts.add(s4); ts.add(s5); // 遍历 for (Student stu : ts) { System.out.println("姓名:" + stu.getName() + ",总分:" + stu.getSum()); } }}
学生类
package homework_num1a;import java.util.Scanner;public class Student implements Comparable{ private String name; private int sum; public Student() { super(); } public Student(String name, int sum) { super(); this.name = name; this.sum = sum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; } // 创建获取信息方法 public Student getDate(String name, int a, int b, int c) { // 创建键盘录入对象,获取学生信息 Scanner sc = new Scanner(System.in); System.out.println("请输入学生姓名:"); String sname = sc.nextLine(); System.out.println("语文成绩:"); int chscore = sc.nextInt(); System.out.println("数学成绩:"); int mathscore = sc.nextInt(); System.out.println("英语成绩:"); int engscore = sc.nextInt(); sum = chscore + mathscore + engscore; Student stu = new Student(sname, sum); // 返回Student数据 return stu; } // 重写compareto方法 @Override public int compareTo(Student s) { // 主要条件,比较总分-->由大到小排序 int sum = s.getSum() - this.getSum(); // 次要条件,姓名 int sum2 = sum == 0 ? this.name.compareTo(s.getName()) : sum; return sum2; }}
b:选择器排序
主函数
package homework_num1b;/** * 需求 * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 * * 选择器排序内容 */import java.util.Comparator;import java.util.TreeSet;import homework_num1a.Student;public class Num1Demo { public static void main(String[] args) { // 创建学生类对象 Student s = new Student(); // 选择器排序,使用匿名内部类 TreeSetts = new TreeSet (new Comparator () { @Override public int compare(Student s1, Student s2) { int sum = s2.getSum() - s1.getSum(); int sum2 = sum == 0 ? s1.getName().compareTo(s1.getName()) : sum; return sum2; } }); // 创建接收对象 String name = ""; int a = 0; int b = 0; int c = 0; System.out.println("请依次输入5个学生的姓名、语文成绩、数学成绩、英语成绩"); Student s1 = s.getDate(name, a, b, c); Student s2 = s.getDate(name, a, b, c); Student s3 = s.getDate(name, a, b, c); Student s4 = s.getDate(name, a, b, c); Student s5 = s.getDate(name, a, b, c); // 添加元素 ts.add(s1); ts.add(s2); ts.add(s3); ts.add(s4); ts.add(s5); // 遍历 for (Student stu : ts) { System.out.println("姓名:" + stu.getName() + ",总分:" + stu.getSum()); } }}
学生类
package homework_num1b;import java.util.Scanner;public class Student { private String name; private int sum; public Student() { super(); } public Student(String name, int sum) { super(); this.name = name; this.sum = sum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; } // 创建获取信息方法 public Student getDate(String name, int a, int b, int c) { // 创建键盘录入对象,获取学生信息 Scanner sc = new Scanner(System.in); System.out.println("请输入学生姓名:"); String sname = sc.nextLine(); System.out.println("语文成绩:"); int chscore = sc.nextInt(); System.out.println("数学成绩:"); int mathscore = sc.nextInt(); System.out.println("英语成绩:"); int engscore = sc.nextInt(); sum = chscore + mathscore + engscore; Student stu = new Student(sname, sum); // 返回Student数据 return stu; }}
3.获取10随机数,1-20之间,要求值不能重复!(ArrayList,HashSet)
package homework_num2;/** * 获取10随机数,1-20之间,要求值不能重复! */import java.util.HashSet;import java.util.Random;import java.util.Set;public class Num2Demo { public static void main(String[] args) { //创建Random类对象 Random r = new Random(); //创建Set集合对象,子实现类:HashSet集合 Setset = new HashSet (); //获取随机数 while (true) { int num = r.nextInt(20) + 1; set.add(num); //判断是否够10个数 if (set.size() == 10) { break; } } //遍历输出 for (Integer s : set) { System.out.println(s); } }}
4.ArrayList集合嵌套HashMap集合并遍历。
需求:假设ArrayList集合的元素是HashMap。有3个。每一个HashMap集合的键和值都是字符串。元素我已经完成,请遍历。
ArrayList<HashMap<String,String>>
结果:
周瑜---小乔 吕布---貂蝉 郭靖---黄蓉 杨过---小龙女 令狐冲---任盈盈 林平之---岳灵珊
package homework_num3;/** * 需求: * ArrayList集合嵌套HashMap集合并遍历。 需求: 假设ArrayList集合的元素是HashMap。有3个。 每一个HashMap集合的键和值都是字符串。 元素我已经完成,请遍历。ArrayList> 结果: 周瑜---小乔 吕布---貂蝉 郭靖---黄蓉 杨过---小龙女 令狐冲---任盈盈 林平之---岳灵珊 */import java.util.ArrayList;import java.util.HashMap;import java.util.Set;public class Num3Demo { public static void main(String[] args) { //创建嵌套HashMap的ArrayList集合 ArrayList > l = new ArrayList >(); //获取元素 HashMap m1 = new HashMap (); m1.put("周瑜", "小乔"); m1.put("吕布","貂蝉"); HashMap m2 = new HashMap (); m2.put("郭靖", "黄蓉"); m2.put("杨过", "小龙女"); HashMap m3 = new HashMap (); m3.put("令狐冲", "任盈盈"); m3.put("林平之", "岳灵珊"); l.add(m1); l.add(m2); l.add(m3); //遍历 for(HashMap map : l ) { //获取所有键的集合 Set set = map.keySet(); for(String key : set) { //通过键找值 String value = map.get(key); System.out.println(key+"---"+value); } } }}
转载地址:https://blog.csdn.net/otmqixi/article/details/80261136 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年03月24日 18时04分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
config.php渗透,phpMyAdmin 渗透利用总结
2019-04-21
c语言枪图形,6个变态的C语言Hello World程序[转载]
2019-04-21
郑州大学c语言课程设计2000行,C语言课程设计大作业(1).pptx
2019-04-21
android 程序更换字体,Android修改自己程序字体的方法详解
2019-04-21
c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急...
2019-04-21
android 6.0 蓝牙进程,Android6.0-蓝牙权限问题
2019-04-21
wxml修改样式_[笔记]小程序支持的样式选择器
2019-04-21
banner 获取当前指示物_学会这些技巧,让你的banner脱颖而出
2019-04-21
线上banner什么意思_广交会线上直播怎么做
2019-04-21
获取默认值_TarsGo 服务获取自定义模版(配置)值
2019-04-21
启动rocketmq_rocketmq 部署启动指南-Docker 版
2019-04-21
热敏打印_热敏打印机需要碳带吗?
2019-04-21
点击屏幕触发_Flutter 中文文档:点击、拖动和其他手势
2019-04-21
怎么解决_壁挂炉出现e2是怎么回事?一般怎么解决?
2019-04-21
内容换行_内容换行或分段不会影响到SEO优化和搜索引擎收录抓取
2019-04-21
图形化分析工具_酷炫!一款 Go 语言实现的实时图形化分析的性能测试工具
2019-04-21
发动机冷启动和热启动的区别_柴油发动机冬季启动3招小窍门
2019-04-21