排列数字,但输出变量名称

时间:2014-06-04 11:49:38

标签: java arrays arraylist

我有一些变量,并希望在数组或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;

由于

2 个答案:

答案 0 :(得分:1)

您应该使用Map解决此问题。 LinkedHashMap保留其键的顺序,以便您可以迭代它们。如果您想自动订购,可以使用TreeMapComparator

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());

}

编辑: 现在它在变量具有相同数字时有效。