zoukankan      html  css  js  c++  java
  • Java中两个List对比的算法

    Java中两个List对比的算法:

     
                    // 测试数据
                    // tdcsDdt.add("Z");
                    // tdcsDdt.add("B");
                    // tdcsDdt.add("C");
                    // tdmsDdt.add("D");
                    // tdmsDdt.add("A");
                    // tdmsDdt.add("F");
                    // java中排序与SQL中排序不一致,需要按照java中的方式重排一下;
                    Collections.sort(tdcsDdt);
                    Collections.sort(tdmsDdt);
                    String sep = "========";
                    String blank = "       ";
                    System.out.println("==TDCS==" + ljpym + "==TDMS==");
                    // 记录TDMS所在位置
                    int kMark = 0;
                    for (int j = 0, sizej = tdcsDdt.size(); j < sizej; j++) {
                        String tdcsDdtStr = tdcsDdt.get(j);
                        // 记录是否进入了循环,防止kMark==tdmsDdt.size()的时候多输出一行;
                        boolean isInxunhuan = false;
                        for (int k = kMark, sizek = tdmsDdt.size(); k < sizek; k++) {
                            isInxunhuan = true;
                            String tdmsDdtStr = tdmsDdt.get(k);
                            if (tdmsDdtStr.compareTo(tdcsDdtStr) < 0) {
                                System.out.println(blank + sep + tdmsDdtStr);
                                kMark++;
                            }
                            if (tdmsDdtStr.compareTo(tdcsDdtStr) == 0) {
                                System.out.println(tdcsDdtStr + sep + tdmsDdtStr);
                                kMark++;
                                break;
                            }
                            if (tdmsDdtStr.compareTo(tdcsDdtStr) > 0) {
                                System.out.println(tdcsDdtStr + sep + blank);
                                break;
                            }
                        }
                        // 如果tdmsDdt循环完毕,需要把tdcsDdt的继续输出
                        if (kMark - tdmsDdt.size() == 0 && !isInxunhuan) {
                            System.out.println(tdcsDdtStr + sep + blank);
                        }
                    }
                    for (int k = kMark, sizek = tdmsDdt.size(); k < sizek; k++) {
                        String tdmsDdtStr = tdmsDdt.get(k);
                        System.out.println(blank + sep + tdmsDdtStr);
                    }
  • 相关阅读:
    Android AdapterView View的复用机制 分析
    go12---interface
    go11---方法method
    go10---struct
    go09---defer
    go8---函数function
    go7---map
    go6---slice切片
    go5--数组
    go4--break,continue + 标签
  • 原文地址:https://www.cnblogs.com/stono/p/5087785.html
Copyright © 2011-2022 走看看