我有两个数组:
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);
最佳答案
您对 TreeMap
的使用方式感到困惑。 TreeMap
保持键的排序。在你的情况下,你有一个键 - intArray
所以没有什么可以排序的。您必须将每一对放入映射中:对于每个可能的 i
,theMap.put(intArray[i], strArray[i])
。
顺便说一句,如果只是为了排序,则不需要强制性的TreeMap
。您可以创建一个包装点和字符串的类的列表,然后使用Collections.sort(list)
对其进行排序。当然你必须实现Comparable
接口(interface)。
关于java - 对与 Java 中的字符串数组相关的 int 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562435/