我的map讲道理是存了一个值的,但我在测试时取值却为空

图片说明

你map里面没有放值啊,所以你的map的size=0,当然就没有值了,而且map的get不是用数字的,应该是用key
你的key是它的地址InetAddress.
只有list可以get下标,map和set都不可以的。

Socket socket = serverSocket.accept();

            if(null != socket && !socket.isClosed()){
                //        以下用于实验
                ListUtil listUtil = new ListUtil();

                //处理接受的数据
                Thread t1 = new Thread(new SocketOperate(socket));

// 以下为实验代码
InetAddress clientIp = socket.getInetAddress();
if(clientIp!=null||!clientIp.equals("")) {
listUtil.addMap(clientIp, socket);
}
t1.start();

            }else{
                break;
            }

get参数是key值,不是索引

先看map是不是空,以后就好找原因了

map get 有两种情况获取的value是null,map没有元素或者map中没有对应的key