相关文章推荐
有情有义的枇杷  ·  【.Net ...·  2 年前    · 

代码和说明如下:

package test;


import java.util.ArrayList;
import java.util.List;


/**
* @author : suyuyuan
* @date :2016年5月17日 上午9:41:05
* @version 1.0
*/
public class Comparison {

public static void main(String[] args) {


List<String> database = new ArrayList<String>();
List<String> powerdesigner = new ArrayList<String>();

//数据库中取出的字段:
String base="ID 测试1 PROMOTION_ID CUSTOMER_ID STORE_ID PAYMENT_TRANS_NO PAYMENT_REFUND_NO DELETED ADD_TIME UPDATE_TIME REFUND_DATE PREFERENTIAL_MONEY CASH_MONEY HD_TRANS_NO";

String sBase=base.replaceAll("\t", ",");
System.out.println(sBase);

String[] baseArray=sBase.split(",");
System.out.println(baseArray.length);
System.out.println(baseArray[0]);
System.out.println(baseArray[13]);

for(int i=0;i<14;i++){
database.add(baseArray[i]);
System.out.println(database);
}

//PDM中取出的字段:
String designer="ID HD_TRANS_NO 测试2 PREFERENTIAL_MONEY CASH_MONEY PROMOTION_ID CUSTOMER_ID STORE_ID PAYMENT_TRANS_NO PAYMENT_REFUND_NO REFUND_DATE DELETED ADD_TIME UPDATE_TIME";

String sDesigner=designer.replaceAll("\t", ",");
System.out.println(sDesigner);

String[] designerArray=sDesigner.split(",");
System.out.println(designerArray.length);
System.out.println(designerArray[0]);
System.out.println(designerArray[13]);

for(int i=0;i<14;i++){
powerdesigner.add(designerArray[i]);
System.out.println(powerdesigner);
}


//将database和powerdesigner进行对比,是否有差异元素
//1、进行database在powerdesigner中的遍历
Boolean b1=false;
String s1 = new String();
for(String baseItem : database){

for(String designerItem : powerdesigner){

if(baseItem.equals(designerItem)){
b1=true;
break;      //如果当前baseItem在powerdesigner中存在值,则跳出baseItem在剩余powerdesigner中的遍历,进行下一个baseItem的遍历;
}
b1=false;       //如果在powerdesigner中找不到当前的baseItem,则设置Boolean为false。
}
if(!b1){
s1=baseItem;
System.out.println(s1 + "字段不存在PDM中");
}

}
//2、同理,进行powerdesigner在database中的遍历
Boolean b2=false;
String s2 = new String();
for(String designerItem : powerdesigner){

for(String baseItem : database){

if(designerItem.equals(baseItem)){
b2=true;
break;
}
b2=false;
}
if(!b2){
s2=designerItem;
System.out.println(s2 + "字段不存在数据库中");
}

}


}
}

//稍作修改如下:

package test;


import java.util.ArrayList;
import java.util.List;


/**
* @author : suyuyuan
* @date :2016年5月17日 上午9:41:05
* @version 1.0
*/
public class Comparison {

public static void main(String[] args) {


List<String> database = new ArrayList<String>();
List<String> powerdesigner = new ArrayList<String>();

//数据库中取出的字段:
String base="ID PROMOTION_ID TYPE COMMODITY_ID MONEY AMOUNT STORE_ZOME_LEVEL STORE_ZOME_CODE DELETED ADD_TIME UPDATE_TIME DISCOUNT_MONEY";

String sBase=base.replaceAll("\t", ",");
System.out.println(sBase);

String[] baseArray=sBase.split(",");
int baselength=baseArray.length;
System.out.println(baselength);

for(int i=0;i<baselength;i++){
database.add(baseArray[i]);
System.out.println(database);
}

//PDM中取出的字段:
String designer="ID PROMOTION_ID TYPE COMMODITY_ID MONEY AMOUNT DISCOUNT_MONEY STORE_ZOME_LEVEL STORE_ZOME_CODE DELETED ADD_TIME UPDATE_TIME";

String sDesigner=designer.replaceAll("\t", ",");
System.out.println(sDesigner);

String[] designerArray=sDesigner.split(",");
int designerlength=designerArray.length;
System.out.println(designerlength);

for(int i=0;i<designerlength;i++){
powerdesigner.add(designerArray[i]);
System.out.println(powerdesigner);
}


//将database和powerdesigner进行对比,是否有差异元素
//1、进行database在powerdesigner中的遍历
Boolean b1=false;
String s1 = new String();
for(String baseItem : database){

for(String designerItem : powerdesigner){

if(baseItem.equals(designerItem)){
b1=true;
break;      //如果当前baseItem在powerdesigner中存在值,则跳出baseItem在剩余powerdesigner中的遍历,进行下一个baseItem的遍历;
}
b1=false;       //如果在powerdesigner中找不到当前的baseItem,则设置Boolean为false。
}
if(!b1){
s1=baseItem;
System.out.println(s1 + "字段不存在PDM中");
}

}
//2、同理,进行powerdesigner在database中的遍历
Boolean b2=false;
String s2 = new String();
for(String designerItem : powerdesigner){

for(String baseItem : database){

if(designerItem.equals(baseItem)){
b2=true;
break;
}
b2=false;
}
if(!b2){
s2=designerItem;
System.out.println(s2 + "字段不存在数据库中");
}

}


}
}

注意点:在数据库中把列拷贝出来,复制到excel中,再复制excel中的列,右键另外一个单元格,选择“选择性粘贴”,勾选转置,点击确定。

package Util;


import java.util.Arrays;
import java.util.List;


public class Comparison 2 {
public static void main ( String[] args )
{
List<String> list1 = Arrays.asList ("a", "f", "e", "x", "w");
List<String> list2 = Arrays.asList ("a", "b", "c", "d");
String temp1 = list1.toString ().replaceAll ("[\\[\\]]", ",").replaceAll ("\\s+", "");
String temp2 = list2.toString ().replaceAll ("[\\[\\]]", ",").replaceAll ("\\s+", "");
String result2 = "";
for ( int i = 0; i < list1.size (); i++ )
{
if (temp2.indexOf ("," + list1.get (i) + ",") == -1)
{
result2 += list1.get (i) + ",";
}
}
System.out.println ("存在list1而不存在list2的元素有:" + result2);
System.out.println ("同理可证");
}
}

代码和说明如下:package test;import java.util.ArrayList;import java.util.List;/** * @author : suyuyuan* @date :2016年5月17日 上午9:41:05 * @version 1.0 */public class Comparison {publ Collection c = new ArrayList();//有序(多态) c = new HashSet();//无序 集合 ,不能放重复 元素 c.add(new Student(1002,"zs")); c.add(new Student(1002,"zs")); c.add(new Stude...
java 运用List 集合 保存 对象 ,如果想找到两个list 不同的部分,可以用ArrayList的contains方法,遍历每一个 对象 ,判断是否是相等的,如下: public static void getUncontain(List<String> list1, List<String> list2){ for(String str1 : list1){
想获得B 集合 元素 ,相对于A 集合 来说,哪些 元素 不存在,哪些 元素 A没有 业务场景:以db1 的数据为准,更新db2 的数据,db1有的,db2没有的进行添加操作,db2有的,db1没有的进行删除操作 那么我们就需要知道,哪些 元素 是要添加的,哪些是要删除的 传统做法:通过标记实现 private static Map<...
在项目 ,我们常常用到两个 集合 的数据比对,找到其 不同的数据,在Android里面基本上数据量也不会太大,往往大家都是直接用for循环嵌套搞定,大家有没有想过 当数据量很大的时候,使用for循环嵌套找出不一样的 对象 ,需要多久。本文将为大家介绍一下如果进行高效的数据比对,以及一些特殊场景的应用,收藏起来,你会用到的。 测试耗时会因为设备性能不同而不同,以下为测试设备的硬件 创建...
Java 查找两个 集合 的相同 元素 和不同 元素 假设有这个 集合 , List<Category> metaCategs , 只要categId 在下面数组 ,就从metaCategs 移除 Integer[] removeCategIds =ne...
判断 集合 的某个 元素 的某个属性是否全部相等 List<User> users = new ArrayLiat<>(); //获取User 对象 age属性,distinct()去重,count()获取去重后的 集合 数 long count = users.stream().map(User::getAge).distinct().count(); //判断(如果全部相等:count应该等于1) if (count != 1) { return S
在项目开发 ,经常会对比不同的 集合 ,获取里面不相同的 元素 ,一般会用到好几种方法,这里算是一种,mark一下。 public static List&lt;Integer&gt; getDiffrent(List&lt;Integer&gt; list1, List&lt;Integer&gt; list2) { long st = System.nanoTime();
你可以使用 Java 的 `contains()` 方法来查找两个 List 集合 是否存在相同的字段。 例如,假设你有两个 List 集合 ,分别是 list1 和 list2,你想查找它们 是否存在相同的字段。你可以这样做: for (Object element : list1) { if (list2.contains(element)) { // 字段存在 } else { // 字段不存在 你也可以使用 Java 8 的 Stream API 来简化上述代码,例如: boolean hasCommonElement = list1.stream().anyMatch(list2::contains); if (hasCommonElement) { // 字段存在 } else { // 字段不存在 Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/**] 69105 解决:Generation aborted due to errors detected during the verification of the model. 可达鸭12118: 你tm真是个人才 redis如何查看版本号? 快乐柠檬: 查看到了版本号: redis_version:5.0.8 [/code][code=objc] [/code]