java习题——集合类、枚举类型与泛型——英文字母输出,掷骰子,彩虹枚举,体检记录模拟
1、使用数组和ArrayList类,先输出A→Z,再输出z→a
import java.util.*;public class CharacterPrinter {public static void main(String[] args) {char[] upper_array = new char[26];char[] lower_array = new char[26];List<Character> upper_list = new ArrayList<Character>();List<Character> lower_list = new ArrayList<Character>(); // 新建数组和列表int counter_1 = 0;int counter_2 = 0; // 预设计数器for(char i = 65; i <= 90; i++) { // 65-90是大写字母A-Z的ASCII码upper_array[counter_1] = i;upper_list.add(i);counter_1++; // 循环写入数据}for(char i = 97; i <= 122; i++) { // 97-122是小写字母a-zASCII码lower_array[counter_2] = i;lower_list.add(i);counter_2++;}System.out.print("数组打印A-Z:");for(int i = 0; i < 26; i++) {System.out.print(upper_array[i] + " ");}System.out.print("\n");System.out.print("数组打印z-a:");for(int i = 25; i >= 0; i--) {System.out.print(lower_array[i] + " ");}System.out.print("\n");System.out.print("ArrayList打印A-Z:");for(int i = 0; i < 26; i++) {System.out.print(upper_list.get(i) + " ");}System.out.print("\n");System.out.print("ArrayList打印z-a:");for(int i = 25; i >= 0; i--) {System.out.print(lower_list.get(i) + " ");}System.out.print("\n"); // 一堆打印, 打印\n是为了换行输出,直接println("")也行}
}
2、张三,李四、王五、赵六玩掷骰子游戏,比点数大小(别问我为什么题干这么短,问就是后面都是答题提示,太长了我懒得输入)
import java.util.*;public class Dice {public static void main(String[] args) {out: while (true) { // 标记最外层循环为outList<Integer> num = new ArrayList<Integer>(); // 这是存点数的for (int i = 1; i <= 6; i++) {num.add(i); // 循环写入1-6的点数}String[] name = {"张三", "李四", "王五", "赵六"}; // 存储姓名的数组int[] test = new int[4]; // 中介用的数组Map<String, Integer> dicemap = new HashMap<>(); // 字典for (int i = 0; i < 4; i++) {Random random = new Random();int number = random.nextInt(6); // 随机数生成String key = name[i];int value = num.get(number); // 利用随机数随机取数(多少有点duck不必的感觉,但谁叫他要求了,我还是得这么做)dicemap.put(key, value); // 写入字典test[i] = value; // 顺便备份出一份数据来方便查重和排序}for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (test[i] == test[j] && i != j) {System.out.print("存在差别"); // 双循查重continue out; // 跳过之前做了标记的此次外层循环}else {continue;}}}Arrays.sort(test); // 排序int max = test[3]; // 找出最大的那个for (String a: dicemap.keySet()) {if (max == dicemap.get(a)) { // 按照最大的匹配循环查找System.out.print("点数最大的人的姓名是:" + a); // 查找并进行打印break out;}else {continue;}}}}
}
3、编写一个彩虹枚举,枚举中有“红橙黄绿青蓝紫”7种颜色
// 无可注释enum Color {red, orange, yellow, green, blue, cyan, purple
}public class RainBow {public static void main(String[] args) {System.out.print("The colors of rainbow are: ");Color rainbow[] = Color.values();for (int i = 0; i <=6; i++) {if (i != 6) {System.out.print(rainbow[i] + ", ");} else {System.out.print(rainbow[i] + ".");}}}
}
4、
(1)创建一个性别枚举,有男性和女性两个枚举项。
(2)创建一个测试类,类有A、B、C 3个泛型。分别使用这3个泛型创建3个成员变量。编写可以为3个成员变量赋值的构造方法。
(3)创建第一个测试类对象date,该对象用于记录日期,3个成员变量分别记录表示年、月和日的整型数字,在控制台打印date对象的所有属性值。
(4)创建第二个测试类对象tom,该对象用于记录人物信息,3个成员变量分别记录姓名、身高和性别。姓名是字符串,身高是整数,性别使用(1)中提供的枚举。在控制台打印tom对象的所有属性值。
// 无可注释enum Gender {male, female
}public class PhysicalExamination<A, B, C> {private A a_data;private B b_data;private C c_data;public PhysicalExamination(A a_data, B b_data, C c_data) {this.a_data = a_data;this.b_data = b_data;this.c_data = c_data;}public String toString() {return "a_data is " + a_data + ", b_data is " + b_data + ", c_data is " + c_data;}public static void main(String[] args) {PhysicalExamination<Integer, Integer, Integer> date = new PhysicalExamination<>(2003, 8, 14);System.out.println(date);PhysicalExamination<String, Integer, Gender> tom = new PhysicalExamination<>("Liu,ZX", 175, Gender.male);System.out.println(tom);}
}
java习题——集合类、枚举类型与泛型——英文字母输出,掷骰子,彩虹枚举,体检记录模拟相关推荐
- Java POI——Excel导入导出的列英文字母与数字的互转方法记录
因项目需要,写了递归实现POI--excel英文字母列转列编号,记录. 规则1:excel英文字母列转数字编号:A→0,B→1,Z→25,AA→26,ZZ→701,AAA→702 - public i ...
- Java核心技术----枚举类型与泛型
一.枚举类型 1.使用枚举类型设置常量 其中,enum是定义枚举类型关键使用枚举类型定义常量的语法如下: public enum Constants{ Constants_A, Constants_B ...
- Java枚举类型与泛型
一.枚举类型 1.使用枚举类型设置常量 以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用,并且该常量不能被修改,因为在接口中定义常量时,该常量的修饰符为final与static.常规定 ...
- 枚举类型为什么是线程安全的?为什么反序列化枚举类型也不会创建新的实例?
枚举类型为什么是线程安全的? 我们定义的一个枚举,在第一次被真正用到的时候,会被虚拟机加载并初始化,而这个初始化过程是线程安全的.而我们知道,解决单例的并发问题,主要解决的就是初始化过程中的线程安全问 ...
- Java 随机数练习之从26个英文字母(含大小写)和 0 - 9 数字中随机抽出4个字符,然后拼接成一个随机验证码
从26个英文字母(含大小写)和 0 - 9 数字中随机抽出4个字符,然后拼接成一个随机验证码 判断输入的验证码 与 随机生成的验证码 是否相同(忽略大小写) 如果正确,则系统提示,"恭喜你验 ...
- 输入一个大写英文字母,输出小写英文字母;输入一个小写英文字母输出一个大写英文字母
题目:编写程序,从键盘输入一个英文字母.如果是大写字母,则输出它对应的小写字母:如果是小写字母,则输出它对应的大写字母. 题目来源c语言程序设计第二版电子科技大学出版社P90编程题t2 对于转换字母大 ...
- c枚举类型enum例题_C语言--enum,typedef enum 枚举类型详解
原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...
- java程序a-z b-y,请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结 - 赏学吧...
请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结果.加密操作是将字母变换成倒序的大写字母,如A->Z,B->Y. 注意:请勿改动main( ...
- java不兼容的类型_Java泛型,不兼容的类型错误(带有继承)
我有跟随抽象类- public abstract class IRepository { public T getEntityById(int idEntity){ try{ Session sess ...
最新文章
- 全面剖析linux【bind】服务お理论篇
- SignalR Core尝鲜
- 在VMware虚拟机中进行Ghost网刻不成功的几点提示
- eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean
- 16.对极几何——介绍,立体视觉约束,条件_1
- java智能提示_【Java】智能提示的设置
- 序列化反序列化--Xstream的使用
- [No000048]程序员的成长过程中,有哪些阶段?
- xshell5安装包(百度云),官方免费版,不会强制更新,没有标签限制(2019-4-4)
- macOS Sierra安装Apache2.4+PHP7.0+MySQL5.7.16
- CRM是什么?CRM客户管理系统主要的功能,作用,特点分别有哪些?
- GPS卫星定位—python实现
- 第二篇:Cydia添加源和安装软件
- GitHub上广受欢迎的下载神器:youtube-dl
- 关于O(log2n)的个人理解
- 电脑硬件升级完全解决方案-1
- JOL工具及其分析对象在JVM的大小和分布
- 【C++·C11】C++ 时间与时间戳
- 请输入公众号相关链接,并以http://或https://开头
- webcam包的使用介绍