使用ArrayList实现聊天室的在线用户管理功能。

  1. 定义用户User类,包含用户名、性别、年龄等属性,实现有参构造方法;
  2. 定义聊天室ChatRoom类,在main方法中使用ArrayList来存储在线用户(User类型);
  3. 循环由用户进行功能选择,提供如下菜单:1、用户登录;2、退出登录;3、查看当前在线人数;4、查看所有在线用户;5、关闭聊天室
  4. 当用户选择“用户登录”功能时提示用户输入用户名,根据输入创建User对象并添加到在线用户列表中并提示“登录成功!”;
  5. 当用户选择“退出登录”功能时提示用户输入要退出的用户名,从在线用户列表中查找是否存在该用户,有则从列表中删除并提示“成功退出登录!”,否则提示“该用户不在线!”;
  6. 当用户选择“查看当前在线人数”时输出“当前共有*人在线”,*为实际在线人数;
  7. 当用户选择“查看所有在线用户”时输出所有在线用户的用户名,各用户名之间用空格隔开;
  8. 当用户选择“关闭聊天室”则结束循环,提示“谢谢您的使用!再见!”程序执行结束。

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;

            }

        }
    }
}
  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值