如果我有一个值数组,这些值是映射中的唯一标识符。如何使用.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));
}
答案 0 :(得分:0)
Map.get()的工作方式是,向它传递一个键,然后它返回与该映射中的键关联的值。在这种情况下,您的键是Integers,但是clientID是ArrayList。因此,当您期望将Integer类型的单个值作为键时,实际上是在要求Map使用ArrayList作为键从中返回值。