为什么比较器停止工作?

时间:2018-01-04 17:02:47

标签: java sorting arraylist collections comparator

我有一个看起来像这样的方法来添加和排序:

  @Override
  public boolean add( Object o )
  {       
  boolean contains = false;
  for (Object : this) {       
      if (o1.getNum().equals(o.getNum())) {
          o = o1;
          contains = true;
          break;
      } 
  }

  if (contains) { 
      // merges
  } else {
      return //add;
  }

// Sorts ArrayList from highest to lowest product number   
    Collections.sort(this, new Comparator<Object>() {
        @Override
        public int compare(Object o1, Object o2) {
            Integer f = // get number;
            Integer s = // get number;
            if (f == s) {
                return 0;
            } else
            return f>s ? 1 : -1;
        }
   });


return true;
}

}

在没有任何其他代码的情况下,collections.sort完美无缺。但是,在第一部分添加后,它已停止工作。任何想法如何让它再次运作?

2 个答案:

答案 0 :(得分:0)

如果产品产生的值不是整数,Integer.parseInt会抛出NumberFormatException吗?

答案 1 :(得分:0)

我移动了我的代码并在return // add;

之后立即放置了collection.sort