Java — set 和 list 集合练习题
1、使用Set集合,生成1-25之内不重复的7个随机整数。
//代码
package com.practice1111;import java.util.HashSet;
import java.util.Set;public class createRandomBySet {public static void main(String[] args) {Set<Integer> randomSet = new HashSet<Integer>();while (randomSet.size() < 7) {//土方法,方法一,先生成0-25内的随机整数,然后判断去“0”int myRandom = (int) (Math.random() * 100) % 25;if(myRandom==0) {continue;}else {randomSet.add(myRandom);}/*生成随机数,方法二,先生成一个0-1的随机数,然后乘以24,再加1,最后取整*int myRandom = (int) (Math.random() * 24 + 1);*randomSet.add(myRandom);*/ }//打印集合for (Object result : randomSet) {System.out.print(result + " ");}}
}
运行结果:
2、如何判断两个集合是否有交集,并打印出他们的交集。
//代码
package com.practice1111;import java.util.List;
import java.util.ArrayList;
import java.util.Collections;public class findTheIntersectionOfSets {public static void main(String[] args) {Integer[] a = { 1, 2, 3, 4, 5 };Integer[] b = { 3, 4, 5, 6, 7, 8, 9 };List<Integer> list1 = new ArrayList<Integer>(a.length);List<Integer> list2 = new ArrayList<Integer>(b.length);//方法一:增强for循环,将数组元素添加到集合中 /*for(int c: a) { list1.add(c); } for(int d: b) { list2.add(d);}*/ // 方法二:将数组元素添加到集合中Collections.addAll(list1, a);Collections.addAll(list2, b);// 打印list1集合System.out.println("集合二的元素为:");for (int e : list1) {System.out.print(e + " ");}System.out.println();// 打印list2集合System.out.println("集合一的元素为:");for (int f : list2) {System.out.print(f + " ");}System.out.println();// 判断两个集合有无交集,有则打印交集if (list1.retainAll(list2)) {System.out.println("有交集:");for (int e : list1) {System.out.print(e + " ");}} else {System.out.println("没有交集!");}}
}
运行结果:
3、给你两个集合,要求合并{A} + {B}={C}。 要求集合C中不会有相同的元素。
//代码
package com.practice1111;
import java.util.Set;
import java.util.HashSet;
public class MergeCollection {public static void main(String[] args) {Integer[] a = { 1, 2, 3, 4, 5 };Integer[] b = { 3, 4, 5, 6, 7, 8, 9 };Set<Integer> A = new HashSet<Integer>(a.length);Set<Integer> B = new HashSet<Integer>(a.length);//添加数组元素到A集合for(int c: a) {A.add(c);}//打印A集合System.out.println("集合A中的元素为:");for(int re: A) {System.out.print(re + " ");}//添加数组元素到B集合for(int d: b) {B.add(d);}System.out.println();//打印B集合System.out.println("集合B中的元素为:");for(int re: b) {System.out.print(re + " ");}//合并A集合和B集合for(int e: A) {B.add(e);}System.out.println();System.out.println("合并后的集合为:");for(int f : B) {System.out.print(f + " ");}}
}
运行结果为:
4、(list集合)输入工人信息:
- 创建一个List,在List 中增加三个工人,基本信息如下:
姓名 | 年龄 | 工资 |
---|---|---|
zhang3 | 18 | 3000 |
li4 | 25 | 3500 |
wang5 | 22 | 3200 |
在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300 。
删除wang5 的信息 。
遍历,打印List 中所有工人的信息 。
利用迭代遍历。
//代码
package com.practice1111;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListTest {public static void main(String[] args) {// TODO Auto-generated method stubWorker w1 = new Worker("zhang3", 18, 3000);Worker w2 = new Worker("li4", 25, 3500);Worker w3 = new Worker("wang5", 22, 3200);Worker w4 = new Worker("zhao6", 24, 3300);List<Worker> workersList= new ArrayList<Worker>();workersList.add(w1);workersList.add(w2);workersList.add(w3);int index = 0;System.out.println("*************第一问:添加工人信息****************");//打印工人信息for(Worker o: workersList) {System.out.println("姓名:" + o.getName() + " 年龄:" + o.getAge() + " 工资:" + o.getSalary());}workersList.add(1, w4);System.out.println("*************第二问:插入zhao6*****************");System.out.println("添加zhao6完成!");//添加zhao6后,打印工人信息for(Worker o: workersList) {System.out.println("姓名:" + o.getName() + " 年龄:" + o.getAge() + " 工资:" + o.getSalary());}System.out.println("*************第三问:删除wang5 的信息*****************");System.out.println("删除wang5完成!");//集合中删除wang5的信息workersList.remove(w3);for(Worker o: workersList) {System.out.println("姓名:" + o.getName() + " 年龄:" + o.getAge() + " 工资:" + o.getSalary());}System.out.println("*************第四问:增强for循环遍历*****************");for(Worker o: workersList) {System.out.println("姓名:" + o.getName() + " 年龄:" + o.getAge() + " 工资:" + o.getSalary());}System.out.println("*************第五问:利用迭代遍历********************");Iterator it = workersList.iterator();while(it.hasNext()) {Worker w = (Worker) it.next();System.out.println("姓名:" + w.getName() + " 年龄:" + w.getAge() + " 工资:" + w.getSalary());}}
}
class Worker{String name;int age;int salary;//无参构造方法public Worker() {// TODO Auto-generated constructor stub}//有参构造方法public Worker(String name, int age, int salary) {super();this.name = name;this.age = age;this.salary = salary;}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 int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}}
运行结果为:
5、某班级有若干学生(学生对象放在一个List中),每个学生有一个姓名属性、班级名称属性(String)和考试成绩属性(int)。某次考试结束后,每个学生都获得了一个考试成绩,请打印出这个班级的总分和平均分。
//代码
package com.practice1111;
import java.util.List;
import java.util.ArrayList;public class StudentTest {public static void main(String[] args) {// TODO Auto-generated method stubStudent s1 = new Student("zhangsan", "一班", 85);Student s2 = new Student("lisi", "一班", 97);Student s3 = new Student("wangwu", "一班", 76);Student s4 = new Student("zhaoliu", "二班", 86);Student s5 = new Student("cuiqi", "二班", 98);Student s6 = new Student("sunba", "二班", 92);Student s7 = new Student("lijiu", "二班", 100);int totleScore1 = 0; int totleScore2 = 0;List list1 = new ArrayList();list1.add(s1);list1.add(s2);list1.add(s3);List list2 = new ArrayList();list2.add(s4);list2.add(s5);list2.add(s6);list2.add(s7);for(Object s : list1) {Student student = (Student) s;totleScore1 += student.getscore();}for(Object s : list2) {Student student = (Student) s;totleScore2 += student.getscore();}System.out.println("一班的总分为:" + totleScore1 + "分" + " 平均分为:" + (double)totleScore1/list1.size()+ "分");System.out.println("二班的总分为:" + totleScore2 + "分" + " 平均分为:" + (double)totleScore2/list2.size()+ "分");}}
class Student{String name;String className;int score;public Student(String name, String className, int score) {super();this.name = name;this.className = className;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getClassName() {return className;}public void setClassName(String className) {this.className = className;}public int getscore() {return score;}public void setscore(int score) {this.score = score;}}
运行结果为:
Java — set 和 list 集合练习题相关推荐
- [转]Java中常用的集合—初学者的你不可错过的精编整理
集合一直都是项目中非常常见的,我是一个Android开发者,集合对于我来说,在项目中使用的次数非常之多,因为使用的多,熟能生巧,所以这里呢!就给那些初学者整理一下Java当中常用的集合吧! 因为 ...
- Java 8中处理集合的优雅姿势——Stream
在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增.删.改.查.聚合.统计.过滤等操作.相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便 ...
- java语言基础及集合基础大总结
好好学java java知识分享/学习教程免费分享 关注 精彩内容 你所需要的java全套视频教程 你所需要的java电子图书 你所需要的大数据视频教程 你所需要的java练习项目 如 / 诗 近半个 ...
- java List最大_在java中获取List集合中最大的日期时间操作
取list集合中最大的日期, 可以用date max = collections.max(datelist);, 传入一个日期集合, 就可以获取, 工作中有这个需求, 就查找到这个, 代码如下 } e ...
- java map常用类及其方法_Day50.Map类常用的方法 -Java常用类、集合#、IO
Day50.Map类常用的方法 -Java常用类.集合#.IO Day50.Map类常用的方法 -Java常用类.集合#.IO Map类常用的方法 . 总结: 常用方法 添加: put(Object ...
- List精讲(Java版)·算法常用集合处理方法
List精讲(Java版)·算法常用集合处理方法 请仔细查阅每一个注释: import java.util.ArrayList; import java.util.Collections; impor ...
- Java中如何克隆集合——ArrayList和HashSet深拷贝
2019独角兽企业重金招聘Python工程师标准>>> 编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List,Set,ArrayList,HashSet或者其他集合实现的方法 ...
- Java面试知识点:集合、Set、泛型、HashSet、HashMap
Java面试知识点:集合.Set.泛型.HashSet.HashMap 答案: 1.集合 集合和数组的对比小结 1,数组的长度是不可变的,集合的长度是可变的. 2 ,数组可以存 ...
- Java 数组转成集合List三种方法和(数组、集合List、Set相互转换)
Java 数组转成集合List 三种方法 package com.list;import java.util.ArrayList; import java.util.Arrays; import ja ...
- java中如何上送list集合_如何使用java中的list集合
如何使用java中的list集合 发布时间:2020-06-26 14:45:11 来源:亿速云 阅读:88 作者:Leah 如何使用java中的list集合?针对这个问题,这篇文章详细介绍了相对应的 ...
最新文章
- 传统CV和深度学习方法的比较
- 开发人员安全行为规则_为开发人员改善生活的7条简单规则
- 我们前端忙成狗 人家后端写sql?
- WinFormDataGridView单元格提示和相关应用 之配餐系统的开发
- windows下使用mahout|Taste实现协同过滤算法
- struts2学习笔记(一):配置struts2开发环境
- 青花瓷抓HTTPS数据
- web技术分享| WebRTC 实现屏幕共享
- 适合高要求应用的高性能MEMS IMU解决方案
- 华为2018届校园招聘笔试题目以及相应代码分享 软件开发岗位
- java读取ifc文件_IFC - 西北逍遥 - 博客园
- 微擎修改服务器域名,微擎服务器ip地址修改
- sklearn中分割数据集的函数
- 大数据需要学习哪些技术?
- 判断南红价值,“红“的等级是关键
- ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge 状压dp
- greenplum-db-5.10 for Centos 7.6 分布式安装,使用,备份与恢复
- 远程桌面上如何打开本地打印机?
- 常用数据集网盘免费下载(转载)
- keyshot渲染图文教程_KeyShot渲染教程,KeyShot渲染基础教程步骤图文详解