gpt4 book ai didi

java - 使用哈希表、数组列表。从他们那里获取信息

转载 作者:行者123 更新时间:2023-11-30 04:54:40 26 4
gpt4 key购买 nike

我有一个包含用户和 channel 的聊天程序。我的下一个任务是获取一个用户所在的 channel 列表。这应该如何完成?

以下是目前的代码:

ChatFrontImpl:

private Hashtable<String, ArrayList<String>> channels = new Hashtable<String, ArrayList<String>>();
private ArrayList<Client> clients;

public synchronized boolean registerClient(Client client, String password) throws RemoteException {
if(!u.logIn(client.findName(), password)){
System.out.println("Wrong username or password!");
return false;
}
if (!clients.contains(client)) {
try {
clients.add(client);
updateJlist();
System.out.println(client.findName() + " registered.");
}
catch (Exception e){
System.out.println("error in method registerClient(): " + e);
}
return true;
}else
return false;
}

public void connectChannel(String username, String channel) throws RemoteException{
if(isUserRegistered(username)){
if (!channels.containsKey(channel)) {
String message = "User " + username + " entered the channel";
channels.put(channel, new ArrayList<String>());
channels.get(channel).add(username);
notifyChannelSystem(channel, "SYSTEM", message);
notifySelf(username, "Write /? for avaliable commands");
}
else{
if(channels.get(channel).contains(username)){
}
else {
channels.get(channel).add(username);
String message = "User " + username + " just entered the channel";
notifyChannelSystem(channel, "SYSTEM", message);
}
}
}
}

最佳答案

我会使用不同的数据结构 - 但假设您希望继续使用这个数据结构(为了回答问题):

public List<String> getChannelsForUsername(String username) {
List<String> userChannels = new ArrayList<String>();
for (String channel : channels.keySet()) {
if (channels.get(channel).contains(username)) {
userChannels.add(channel);
}
}
return userChannels;
}

关于java - 使用哈希表、数组列表。从他们那里获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com