ArrayList集合点名器
题目
用集合完成点名器(要求:点名时不能重复)
思路
创建array和array1两个集合,为什么要定义两个集合呢,如果只有一个集合要完成点名不重复,会使集合中的元素发生改变,不利于我们再次去查看信息或再次点名。array集合是对信息进行存储;而当array1集合为空时,我们就把array中的元素赋值给array1,用array1集合来点名,点过名的将其删除避免重复,直至集合再次为空再为其赋值以此往复。
具体请看以下代码
一.创建Rollcall类,定义姓名属性
public class RollCall {private String name;public RollCall() {}public RollCall( String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
二.创建对象,放在ArrayList集合中并完成点名功能
import java.util.ArrayList;import java.util.Collections;import java.util.Random;import java.util.Scanner;public class RollCallDeviceTest {public static void main(String[] args) {//创建集合对象,用于存储学生数据ArrayList<RollCall> array = new ArrayList<RollCall>();ArrayList<RollCall> array1 = new ArrayList<RollCall>();boolean loopFlag = true;//用循环完成再次回到主界面while (loopFlag) {//用输出语句完成主界面的编写System.out.println("-----------黄埔学生档案-----------");System.out.println(" 1.存储同学名字");System.out.println(" 2.查看全班同学姓名");System.out.println(" 3.点名");System.out.println(" 4.退出");System.out.println("-> 请输入您选择的编号:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1":store(array);break;case "2":examine(array);break;case "3":call(array,array1);break;case "4":System.out.println("你确定要退出吗?(Y/N)");String a = sc.nextLine();if (a.equals("Y") ) {loopFlag = false;} else {break;}}}}//定义一个方法,用于添加学生信息到集合public static void store(ArrayList<RollCall> array) {//定义一个方法,用于添加学生信息Scanner sc = new Scanner(System.in);System.out.println("请输入您要录入的同学数量:");int count = sc.nextInt();String name;for (int j = 1; j <= count; j++) {System.out.println("请输入第" + j + "位同学的姓名:");name = sc.next();//创建对象,把键盘录入的数据赋值给姓名属性RollCall s = new RollCall();s.setName(name);//将学生对象添加到集合中array.add(s);}//给出录入成功提示System.out.println(count + "名同学已录入成功!");}//定义方法,完成赋值public static void store1(ArrayList<RollCall> array,ArrayList<RollCall>array1) {for (int i = 0; i < array1.size(); i++) {RollCall s = array.get(i);}array1.addAll(array);}public static void examine(ArrayList<RollCall> array1) {//判断集合中是否有数据,如果没有显示提示信息if (array1.size() == 0) {System.out.println("无信息,请先添加信息再查询!");//为了让程序不在往下执行,给出return;return;}for (int i = 0; i < array1.size(); i++) {RollCall s = array1.get(i);System.out.println(s.getName());}}public static void call(ArrayList<RollCall> array,ArrayList<RollCall> array1) {//如果array1集合为空,调用Store1完成赋值if(array1.isEmpty()){store1(array,array1);}RollCall s = new RollCall();Collections.shuffle(array1);Random r = new Random();int index = r.nextInt(array1.size());System.out.println(array1.get(index).getName());//将已重复的元素删除,避免重复array1.remove(index);}}
完成效果
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
1
请输入您要录入的同学数量:
3
请输入第1位同学的姓名:
wang
请输入第2位同学的姓名:
tang
请输入第3位同学的姓名:
zhang
3名同学已录入成功!
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
2
wang
tang
zhang
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
3
tang
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
3
wang
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
3
zhang
-----------黄埔学生档案-----------
1.存储同学名字
2.查看全班同学姓名
3.点名
4.退出
-> 请输入您选择的编号:
4
你确定要退出吗?(Y/N)
Y
Process finished with exit code 0
ArrayList集合点名器相关推荐
- Java_7.1 ArrayList应用点名器
1.ArrayList同样可以添加自定义的类 将学生类添加到ArrayList集合中,其中学生类包括学生姓名,年龄 自定义学生类 package demo1;public class Student ...
- 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称
文章目录 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称 ...
- php字符串定义为arraylist,如何把arraylist集合中的字符串数据保存的文本文件中
分析: (推荐教程:java课程) 通过题目的意思我们可以知道如下内容:ArrayList集合里存储的是字符串 遍历ArrayList集合,把数据获取 然后存储到文本文件中 文本文文件说明使用文本文件 ...
- ArrayList 集合
Arraylist ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中 ...
- java 集合自定义元素_java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。...
import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装 ...
- Java的ArrayList集合_JAVA之ArrayList集合
/** * ArrayList集合讲解 * 集合的添加.遍历.删除 */ package com.test; import java.util.*; public class test7 { /** ...
- C# ArrayList集合
C# ArrayList集合 集合 可以向数组那样存储多个数据,但是长度不固定.往其中存多少个都可以. ArrayList:动态数组(不是一个数组,是具有数组的功能再克服了数组的缺点) ...
- C#中ArrayList集合
C#中ArrayList集合 ArrayList C#语言中的ArrayList,又被称为动态数组. 它的存储空间可以被动态改变,同时还拥有添加.删除元素的功能. 在实际的工作中,可能会为一组数据发生 ...
- (Java)ArrayList集合
ArrayList集合概述和基本使用 ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类. 数组的长度不可以发生改变,但是ArrayList的长度是可以随时变化的 对于Ar ...
最新文章
- (笔试题)不用除法操作符,实现两个整数的除法
- mysql 导出select语句结果到excel文件等
- Linux CentOS 7下 Apache Tomcat 7 安装与配置
- Win7下Android模拟器中没有3G网络信号的解决办法
- 【GIF动画+完整可运行源代码】C++实现 冒泡排序——十大经典排序算法之一
- java foreach order_Java Elements.forEach方法代码示例
- linux内核关闭tcp校验,linux内核tcp调优规范与方案
- java scala_经过几天的Scala回归Java的10个最烦人的事情
- 图像去雾算法_Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题...
- OpenGL绘制旋转茶壶
- cmd设置mysql初始密码_windows下mysql初始密码设置
- 【OpenCV/C++】KNN算法识别数字的实现原理与代码详解
- Elasticsearch的javaAPI之get,delete,bulk
- Unable to process Jar entry
- 下载SAP hana镜像文件
- WGS84 与 北京54 坐标系互转
- 设计-前端设计尺寸与规范
- vue-cli脚手架中使用talkingData埋点的方法
- 企业app开发要多少钱[APP定制]
- 纸飞机 --2013-08-08博客搬家
热门文章
- 关于团队建设和个人成长
- 百度ECharts地图GeoJson数据在线下载 2021
- 前端开发必备工具-网页调试工具
- 【U8+】用友U8+12.0在win11系统上IE Web Control 组件无法安装
- CISP考试大纲/范围
- 群晖webdev挂载中国移动和彩云网盘
- 计算机毕设Python+Vue业俊宾馆客房管理系统(程序+LW+部署)
- w7电脑蓝屏怎么解决_教你win7电脑蓝屏怎么办
- linux使用佳能ip1188,在Linux下安装打印驱动,以佳能LBP2900+为例
- 查看文章影响因子的插件_这个浏览器插件可以智能查询SCI论文被引情况