2016-04-11 3 views
0

Мне нужно сортировать товары по Высокий по низким & от низкого до высокого по своей цене. Я сделал от низкого до высокого, используя следующий код. Но не знаю, как реализовать High To Low?Сортировка списка <Object>

Ваш ответ больше ценится ...

public static Comparator<Restaurant_Beam> strPriceFilterL2H = new Comparator<Restaurant_Beam>() { 

     @Override 
     public int compare(Restaurant_Beam lhs, Restaurant_Beam rhs) { 
      int CompareResult = 0; 
      if (Config.L2HFilterClicked == "L2H") { 
       CompareResult = (int) Math.round(Double.parseDouble(lhs.getIG_SALES_PRICE()) - Double.parseDouble(rhs.getIG_SALES_PRICE())); 

      } 
//Used else if for H2L.But did not get it as perfect 

else if (Config.L2HFilterClicked == "H2L") { 
       CompareResult = (int) Math.round(Double.parseDouble(lhs.getIG_SALES_PRICE()) + Double.parseDouble(rhs.getIG_SALES_PRICE())); 

      } 
      return CompareResult; 
     } 
    }; 

ответ

3

Изменение второго сравнить выражение этого один:

CompareResult = (int) Math.round(Double.parseDouble(Double.parseDouble(rhs.getIG_SALES_PRICE()) - Double.parseDouble(lhs.getIG_SALES_PRICE())); 

Кроме того, я хотел бы отметить несколько вещей

  • рассмотреть делать Double сравнение с epsilon
  • Рекомендуется проверять объекты перед их сопоставлением
  • разобрать каждый раз, когда вы сравниваете, действительно плохой дизайн. Было бы лучше, если вы проанализируете значения где-то заранее, подумайте об изменении типа. В настоящее время это неэффективно.
+0

Большое спасибо @ Иван Леоненко –