- 定义用户User类,包含用户名、性别、年龄等属性,实现有参构造方法;
- 定义聊天室ChatRoom类,在main方法中使用ArrayList来存储在线用户(User类型);
- 循环由用户进行功能选择,提供如下菜单:1、用户登录;2、退出登录;3、查看当前在线人数;4、查看所有在线用户;5、关闭聊天室
- 当用户选择“用户登录”功能时提示用户输入用户名,根据输入创建User对象并添加到在线用户列表中并提示“登录成功!”;
- 当用户选择“退出登录”功能时提示用户输入要退出的用户名,从在线用户列表中查找是否存在该用户,有则从列表中删除并提示“成功退出登录!”,否则提示“该用户不在线!”;
- 当用户选择“查看当前在线人数”时输出“当前共有*人在线”,*为实际在线人数;
- 当用户选择“查看所有在线用户”时输出所有在线用户的用户名,各用户名之间用空格隔开;
- 当用户选择“关闭聊天室”则结束循环,提示“谢谢您的使用!再见!”程序执行结束。
![](https://img-blog.csdnimg.cn/direct/0ada8867f2df4ce18a15d15ece55ee48.png)
![](https://img-blog.csdnimg.cn/direct/aa68471514f841b2b7f36e00af553b7e.png)
package eight.list.zhoukao;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class ChatRoom {
public static void main(String[] args) {
User u1 = new User("龙龙", "男", 20);
ArrayList<User> list = new ArrayList<User>();
list.add(u1);
//循环由用户进行功能选择
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("1、用户登录;2、退出登录;3、查看当前在线人数;4、查看所有在线用户;5、关闭聊天室");
System.out.println("请选择");
int num = sc.nextInt();
if (num == 1) {
System.out.println("请输入用户名");
String name = sc.next();//接受用户输入的信息
User u2 = new User(name, "男", 23);//创建对象(用户名是用户输入的)
list.add(u2);
System.out.println("登录成功");//1、用户登录
} else if (num == 2) {
System.out.println("请输入要退出的用户名");
String name1 = sc.next();//接受用户输入的信息
//遍历集合 用迭代器遍历
//获取迭代器
Iterator<User> it = list.iterator();
for (User user : list) {
System.out.println(user);
}
//flag 表示里面没有name1这个用户 true:没有这个用户,执行该用户不在线
//当falg有name1这个用户,执行删除,flag=false,该用户不在线不执行
boolean flag = true;
while (it.hasNext()) {
User next = it.next();//每个User对象 next.getName()获取每一个对象的名字
if (next.getName().equals(name1)) {//判断集合中有没有这个元素,获取他的名字
it.remove();//迭代器里的删除
System.out.println("成功退出登录");//2、退出登录
flag = false;
}
}
if (flag) {
System.out.println("该用户不在线");
}
} else if (num == 3) {
int size = list.size();
System.out.println("当前共有" + size + "人在线");//3、查看当前在线人数
} else if (num == 4) {
for (User user : list) {
System.out.println(user.getName() + " ");//4、查看所有在线用户
System.out.println();
}
} else if (num == 5) {
System.out.println("关闭聊天室");//5、关闭聊天室
System.out.println("谢谢您的使用!再见!");
break;
}
}
}
}