首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较法违反了它的一般合同!(TimSort)

比较法违反了它的一般合同!(TimSort)
EN

Stack Overflow用户
提问于 2017-01-25 13:47:48
回答 1查看 878关注 0票数 1

我很抱歉,但是我一直无法解决我自己运行MuTect的问题。我不确定我的论点,或者我的一个输入,甚至是java本身是否有问题。我收到这个错误。

代码语言:javascript
复制
   Error processing 1:12855123
    java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.TimSort.mergeLo(TimSort.java:747)
    at java.util.TimSort.mergeAt(TimSort.java:483)
    at java.util.TimSort.mergeCollapse(TimSort.java:410)
    at java.util.TimSort.sort(TimSort.java:214)
    at java.util.TimSort.sort(TimSort.java:173)
    at java.util.Arrays.sort(Arrays.java:659)
    at java.util.Collections.sort(Collections.java:217)
    at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTectWalker.map(MuTectWalker.java:664)
    at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTectWalker.map(MuTectWalker.java:34)
    at org.broadinstitute.sting.gatk.traversals.TraverseLoci.traverse(TraverseLoci.java:77)
    at org.broadinstitute.sting.gatk.traversals.TraverseLoci.traverse(TraverseLoci.java:18)
    at org.broadinstitute.sting.gatk.executive.LinearMicroScheduler.execute(LinearMicroScheduler.java:61)
    at org.broadinstitute.sting.gatk.GenomeAnalysisEngine.execute(GenomeAnalysisEngine.java:225)
    at org.broadinstitute.sting.gatk.CommandLineExecutable.execute(CommandLineExecutable.java:104)
    at org.broadinstitute.sting.commandline.CommandLineProgram.start(CommandLineProgram.java:227)
    at org.broadinstitute.sting.gatk.CommandLineGATK.main(CommandLineGATK.java:89)

我的代码:

代码语言:javascript
复制
  Comparator<OfferInfo> comparator = new ComparaterClosesyTOMe();

  public class ComparaterClosesyTOMe implements Comparator<OfferInfo> {
        @Override
        public int compare(OfferInfo arg0, OfferInfo arg1) {

            double distance = Utils.getDistance(gpsTracker.getLatitude(), gpsTracker.getLongitude(), arg0.latitude, arg0.longitude, "M");
            double distance1 = Utils.getDistance(gpsTracker.getLatitude(), gpsTracker.getLongitude(), arg1.latitude, arg1.longitude, "M");

            if (distance > distance1)
                return 1;
           else
               return -1;

        }
    }
EN

回答 1

Stack Overflow用户

发布于 2017-01-25 15:08:06

使用非常样例来使用和转换代码。

旧代码:

代码语言:javascript
复制
 if (distance > distance1)
     return 1;
 else
     return -1; 

新代码:

代码语言:javascript
复制
 if (distance == distance1)
      return 1;
 else   
      return -1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41853286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档