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);
}

Java中两个List对比的算法的更多相关文章

  1. [转] 有关java中两个整数的交换问题

    转载申明:本文主要是用于自己学习使用,为了完善自己的只是框架,没有任何的商业目的. 原文来源:有关Java中两个整数的交换问题 如果侵权,麻烦告之,立刻删除. 在程序开发的过程,要交换两个变量的内容, ...

  2. Java中两个或多个byte数组合并及int类型转数组

    Java中两个或多个byte数组合并及int类型转数组 // 用list好处是可以未知多个? public static byte[] test(List<byte[]> values) ...

  3. JAVA 中两种判断输入的是否是数字的方法__正则化_

    JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...

  4. Java中两种实现多线程方式的对比分析

    本文转载自:http://www.linuxidc.com/Linux/2013-12/93690.htm#0-tsina-1-14812-397232819ff9a47a7b7e80a40613cf ...

  5. Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

    前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本 ...

  6. java中两个值互换

    两个值互换有以下三种方式: 使用临时变量(此种方法便于理解) x = 10; y = 20; //begin int temp = x; x = y; y = temp; //end; //此时x = ...

  7. 判断java中两个对象是否相等

    java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false. 但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2 ...

  8. java中两种类型变量

    Java中有两种类型的变量,一种是对象类型,另一种是基础类型(primitive type). 对象类型普遍采用引用的方式,比如 List a = new ArrayList(); List b = ...

  9. [目录][总结] C++和Java 中的主要操作对比

    总结一些,C++ 和Java 中的一些常用操作对比,就当是自己的查询工具书啦.(暂时按随笔的更新时间排序) [Stack] c++ V.S. Java (2015.04.27) [Map]   c++ ...

随机推荐

  1. HDU 1114 Piggy-Bank(判断是否恰好装满的背包)

    其实这道题在寒假自学训练赛的时候就做过,不过感觉现在的理解跟当时真的不一样,大一半年过去了,变了这么多,我们都在进步,一回头便走出了这么远... 好了,题目很简单,一个背包,装不满做一个标记就行了 # ...

  2. input file图片上传预览

    两种方法,方法一: js代码: //头像上传预览 $("#up").change(function() { var $file = $(this); var fileObj = $ ...

  3. JAVA基础--接口 interface

    接口是抽象方法和常量值定义的集合, 接口是一种特殊的抽象类, 只包含常量和方法的定义, 而没有变量和方法的实现. 接口->接口: extends, 类->类: extends, 类-> ...

  4. Android MediaScanner:(一)MediaScanner总体架构

    Android MediaScanner:(一)MediaScanner总体架构 分类: Android android.multimedia2012-05-19 18:29 5050人阅读 评论(5 ...

  5. 【HighCharts系列教程】二、Highcharts结构及API文档

    一.你必须知道的 1.首先,HighCharts是基于Jquery框架开发的,所以需要在页面引入Jquery,具体代码是: <script type="text/javascript& ...

  6. Mysql(集群)业务水平切割 垂直切割(Amoeba)

     Amoeba原理戳这里:Amoeba详细介绍 需要根据企业 数据业务进行切割,垂直切割又称为纵向切割. 垂直切割通说的说就是有多个表,对表进行分离(用户数据.博客文章数据.照片数据.标签数据类型.群 ...

  7. JDBC 数据库连接池

    http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html JDBC 数据库连接池 小结   当对数据库的访问不是很频繁时,可以在每次 ...

  8. PHP 反射应用之一(插件框架)

    http://www.zui88.com/blog/view-205.html 反射,非常有用的一套东西,用来在运行时,分析代码,分析类的属性,方法,参数,实例化类,调用类的方法等等,从而实现框架,实 ...

  9. HTML5 Canvas | w3cschool菜鸟教程

    HTML5 Canvas <canvas> 标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形.. 在画布上(Canvas)画一个红色矩形,梯度矩形,彩色矩形,和一些彩色的文字. ...

  10. Java加密解密字符串

    http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串   旧文重发:http://www.blogjava ...