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) {		// 因为未知元素个数,所以创建集合存储元素		ArrayList
l = 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集合,实现对该类型自然排序		TreeSet
ts = 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();		// 选择器排序,使用匿名内部类		TreeSet
ts = 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集合		Set
set = 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA编程学习记录-不死神兔和文件操作练习
下一篇:JAVA编程学习记录(集合2)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月24日 18时04分34秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

config.php渗透,phpMyAdmin 渗透利用总结 2019-04-21
java list 合并 重复的数据_Java ArrayList合并并删除重复数据3种方法 2019-04-21
c语言枪图形,6个变态的C语言Hello World程序[转载] 2019-04-21
郑州大学c语言课程设计2000行,C语言课程设计大作业(1).pptx 2019-04-21
Android5.1自定义闹钟铃声,Android 设置来电铃声、通知铃声、闹钟铃声中的坑 2019-04-21
android 程序更换字体,Android修改自己程序字体的方法详解 2019-04-21
c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急... 2019-04-21
android服务开启线程,android之service与intentService的不同 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