如何在Java中对数组列表进行排序?

时间:2019-04-22 10:58:17

标签: java

我有一个数组值的数组,例如-

Object[] = [[0.25, "green"],[1.0, "red"],[0.25,"Amber"]]; 

如何根据浮点值对其进行排序,我的预期输出将是-

Object[] = [[0.25,"green"],[0.25,"Amber"],[1.0,"Red"]];

我正在实现以下代码。我正在尝试将地图值分配到object []数组中并添加到列表中。

   Object[] getRiskMeterColor(float val1, String val2) {
        Object[] obj = { val1, val2 };

       return obj;
   }

//This block of code is for Meter display if no values present
public List<Object[]>  getRiskMeterChartForZeroValue(List<RiskConfigTableData> classRangesList){

    List<Object[]> riskMeterColor = new ArrayList<Object[]>();
    Map<String, String> riskClassList = new TreeMap<String,String>();
    Map<String, Float> weightForLabel = new TreeMap<String,Float>();
    float riskWeight = 0;

    if(classRangesList != null && !classRangesList.isEmpty()){
        if(riskClassList != null && weightForLabel != null){
            for(Entry<String, String> colorMap : riskClassList.entrySet()){
                for(Entry<String, Float> weightMap : weightForLabel.entrySet()){
                    if(colorMap.getKey().equalsIgnoreCase(weightMap.getKey())){
                        riskMeterColor.add(getRiskMeterColor(weightMap.getValue() / 100, colorMap.getValue()));
                    }
                }
            }
        }
    }
    return riskMeterColor;
}

在这里,我将列表转换为数组,因此边数组中的值不按升序排列(如上所示)。

      List<Object[]> riskMeterColorList = 
       getRiskMeterChartForZeroValue(classRangesList);
        if (riskMeterColorList != null) {
        Object[] userArray = riskMeterColorList.toArray(new 
             Object[riskMeterColorList.size()]);
        }

1 个答案:

答案 0 :(得分:0)

我以不同的方式尝试解决了自己的问题。我先将这两个值添加到列表中,然后使用Comparator将其按升序排序,然后将此列表添加到Object []并将其添加到List,以使其满足我的需求。