我有两个数组:
int[] intArray = new int[]{point1,point2,point3,point4};
String[] strArray = new String[]{worda,wordb,wordc,wordd};
现在,我想按数字顺序对intArray进行排序,这样strArray遵循相同的顺序。我确信这是一个常见的问题,但我无法让它发挥作用。我制作了一个TreeMap并从每个数组中添加了值。 TreeMap不应该按键自动排序,intArray []?它似乎不起作用。
TreeMap theMap = new TreeMap();
theMap.put(intArray, strArray);
答案 0 :(得分:4)
您对如何使用TreeMap
感到困惑。 TreeMap
保持按键排序。在您的情况下,您有一个键 - intArray
,因此无需进行排序。您必须将每一对放入地图:theMap.put(intArray[i], strArray[i])
,以便为每个可能的i
。
顺便说一句,如果仅用于排序,则不需要强制性TreeMap
。您可以创建一个包含点和字符串的类的列表,然后使用Collections.sort(list)
对其进行排序。当然,您必须实现Comparable
接口。
答案 1 :(得分:1)
是的,TreeMap应该可以正常工作。但是,不是添加两个数组,而是添加每对值。
theMap.put(point1, worda);
theMap.put(point2, wordb);
theMap.put(point3, wordc);
theMap.put(point4, wordd);
答案 2 :(得分:1)
for(int i=0; i< intArray.length; i++)
theMap.put(intArray[i],strArray[i])