Map.get(数组列表中的项目)

时间:2018-11-28 22:54:22

标签: java arrays maps

如果我有一个值数组,这些值是映射中的唯一标识符。如何使用.get函数获取映射到数组列表值的映射值。

 ArrayList clientId = gs.returnSocketID(); //This returns an array (Which are the unique ID's in the Map
 SortedMap<Integer,Integer> clients = gs.returnClientID(); //This returns the map
 storeArray[x][y] = clients.get(clientId); //Try store the value in the 2d array that links to the "unique" id in the map.

我不能这样做,因为我得到了java.lang.ClassCastException: java.util.TreeMap$Values cannot be cast to java.lang.Comparable

我将采取什么方法?

for(int i = 0 ; i < clientId.size(); i++) {
                storeArray[x][y] = clients.get(clientId.get(i));
            }

1 个答案:

答案 0 :(得分:0)

Map.get()的工作方式是,向它传递一个键,然后它返回与该映射中的键关联的值。在这种情况下,您的键是Integers,但是clientID是ArrayList。因此,当您期望将Integer类型的单个值作为键时,实际上是在要求Map使用ArrayList作为键从中返回值。