我有一些变量,并希望在数组或arraylist中按降序排列变量。问题是一旦它被安排,我想打印出变量名,所以我想要一个输出的数组/ arraylist:three3,88,4,4,five5,6,6,seven7而不是32,29,25 ,19,11,11。我该如何解决这个问题?
double three3 = 32;
double four4 = 25;
double five5 = 19;
double six6 = 11;
double seven7 = 11;
double eight8 = 29;
由于
答案 0 :(得分:1)
您应该使用Map
解决此问题。
LinkedHashMap
保留其键的顺序,以便您可以迭代它们。如果您想自动订购,可以使用TreeMap
和Comparator
。
Map<String, Double> variables = new LinkedHashMap<>();
variables.put("three3", 32d);
variables.put("four4", 25d);
// ...
// variable names:
for(String key : variables.keySet()) {
System.out.println(key + "=" + variables.get(key));
}
答案 1 :(得分:0)
像这样使用HashMap
:
Map<Integer, ArrayList<String>> mMap = new HashMap<Integer, ArrayList<String>>();
mMap.put(32,new ArrayList<String>());
mMap.get(32).add("three3");
mMap.get(32).add("four4");
mMap.get(32).add("five5");
mMap.put(25,new ArrayList<String>());
mMap.get(25).add("six6");
mMap.get(25).add("seven7");
mMap.get(25).add("eight8");
mMap.put(29,new ArrayList<String>());
mMap.get(29).add("eight8");
List<Integer> list= new ArrayList<Integer>(mMap.keySet());
Collections.sort(list);
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
System.out.println(mMap.get(iterator.next()).toString());
}
编辑: 现在它在变量具有相同数字时有效。