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习题——集合类、枚举类型与泛型——英文字母输出,掷骰子,彩虹枚举,体检记录模拟相关推荐

  1. Java POI——Excel导入导出的列英文字母与数字的互转方法记录

    因项目需要,写了递归实现POI--excel英文字母列转列编号,记录. 规则1:excel英文字母列转数字编号:A→0,B→1,Z→25,AA→26,ZZ→701,AAA→702 - public i ...

  2. Java核心技术----枚举类型与泛型

    一.枚举类型 1.使用枚举类型设置常量 其中,enum是定义枚举类型关键使用枚举类型定义常量的语法如下: public enum Constants{ Constants_A, Constants_B ...

  3. Java枚举类型与泛型

    一.枚举类型 1.使用枚举类型设置常量 以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用,并且该常量不能被修改,因为在接口中定义常量时,该常量的修饰符为final与static.常规定 ...

  4. 枚举类型为什么是线程安全的?为什么反序列化枚举类型也不会创建新的实例?

    枚举类型为什么是线程安全的? 我们定义的一个枚举,在第一次被真正用到的时候,会被虚拟机加载并初始化,而这个初始化过程是线程安全的.而我们知道,解决单例的并发问题,主要解决的就是初始化过程中的线程安全问 ...

  5. Java 随机数练习之从26个英文字母(含大小写)和 0 - 9 数字中随机抽出4个字符,然后拼接成一个随机验证码

    从26个英文字母(含大小写)和 0 - 9 数字中随机抽出4个字符,然后拼接成一个随机验证码 判断输入的验证码 与 随机生成的验证码 是否相同(忽略大小写) 如果正确,则系统提示,"恭喜你验 ...

  6. 输入一个大写英文字母,输出小写英文字母;输入一个小写英文字母输出一个大写英文字母

    题目:编写程序,从键盘输入一个英文字母.如果是大写字母,则输出它对应的小写字母:如果是小写字母,则输出它对应的大写字母. 题目来源c语言程序设计第二版电子科技大学出版社P90编程题t2 对于转换字母大 ...

  7. c枚举类型enum例题_C语言--enum,typedef enum 枚举类型详解

    原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...

  8. java程序a-z b-y,请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结 - 赏学吧...

    请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结果.加密操作是将字母变换成倒序的大写字母,如A->Z,B->Y. 注意:请勿改动main( ...

  9. java不兼容的类型_Java泛型,不兼容的类型错误(带有继承)

    我有跟随抽象类- public abstract class IRepository { public T getEntityById(int idEntity){ try{ Session sess ...

最新文章

  1. 全面剖析linux【bind】服务お理论篇
  2. SignalR Core尝鲜
  3. 在VMware虚拟机中进行Ghost网刻不成功的几点提示
  4. eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean
  5. 16.对极几何——介绍,立体视觉约束,条件_1
  6. java智能提示_【Java】智能提示的设置
  7. 序列化反序列化--Xstream的使用
  8. [No000048]程序员的成长过程中,有哪些阶段?
  9. xshell5安装包(百度云),官方免费版,不会强制更新,没有标签限制(2019-4-4)
  10. macOS Sierra安装Apache2.4+PHP7.0+MySQL5.7.16
  11. CRM是什么?CRM客户管理系统主要的功能,作用,特点分别有哪些?
  12. GPS卫星定位—python实现
  13. 第二篇:Cydia添加源和安装软件
  14. GitHub上广受欢迎的下载神器:youtube-dl
  15. 关于O(log2n)的个人理解
  16. 电脑硬件升级完全解决方案-1
  17. JOL工具及其分析对象在JVM的大小和分布
  18. 【C++·C11】C++ 时间与时间戳
  19. 请输入公众号相关链接,并以http://或https://开头
  20. webcam包的使用介绍

热门文章

  1. Docker命令及常用容器下载使用
  2. 电感-温升电流-RMS电流-饱和电流-额定电流
  3. 百度云平台语音合成接口python调用
  4. android studio使用Bmob来实现登录注册的功能
  5. CentOS 配置EPEL国内源
  6. 《课后作业系列》:三角形判断
  7. java int取高位8bit_byte解析,取高位与低位
  8. 使用canvas绘制海报,包含文字、图片、base64图片
  9. Ubuntu 安装使用Powerline
  10. 【开源教程10】疯壳·开源蓝牙心率防水运动手环-蓝牙 BLE 收发