Java比较两个String字符串数组

Posted h-dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java比较两个String字符串数组相关的知识,希望对你有一定的参考价值。

比较两个String字符串数组元素差异

1、工具类

package io.renren.common.utils;

import org.apache.commons.lang3.ArrayUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @program: ivvdata-security
 * @description: 比较两个新旧String类型数组
 * @author: HYJ
 * @create: 2019-11-08 11:13
 */
public class CompareStringArrayUtil {

    /**
     * @param oldArr 旧数组
     * @param newArr 新数组
     * @return Map 包含两个数组,相较于旧数组,新数组多了哪些元素,以及少了哪些元素
     */
    public static Map<String, String[]> CompareStringArray(String[] oldArr, String[] newArr) {
        List<String> addList = new ArrayList<>();
        List<String> deleteList = new ArrayList<>();

        for (String anOldArr : oldArr) {
            if (!ArrayUtils.contains(newArr, anOldArr)) {
                deleteList.add(anOldArr);
            }
        }

        for (String aNewArr : newArr) {
            if (!ArrayUtils.contains(oldArr, aNewArr)) {
                addList.add(aNewArr);
            }
        }

        String[] addArr = addList.toArray(new String[addList.size()]);
        String[] deleteArr = deleteList.toArray(new String[deleteList.size()]);
        Map<String, String[]> res = new HashMap<>();
        res.put("addArr", addArr);
        res.put("deleteArr", deleteArr);
        return res;
    }

}

2、执行调用方法

public static void main(String[] args) {
        String[] oldArr = {"1","2"};
        String[] newArr = {"1","3","4"};
        Map<String, String[]> res = CompareStringArrayUtil.CompareStringArray(oldArr, newArr);
        System.out.println("deleteArr: "+ Arrays.toString(res.get("deleteArr")));
        System.out.println("addArr: "+ Arrays.toString(res.get("addArr")));   
 }

3、运行结果

deleteArr: [2]
addArr: [3, 4]

本文转载链接:https://blog.csdn.net/Mr_EvanChen/article/details/80669079

以上是关于Java比较两个String字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

基于String Array项,向下一个片段显示相同的项

Java的string学习笔记 与char数组和bufferstring的比较

Java基础(31):String的大小写转换分离成数组==与equals()的区别

java中两个字符串如何比较大小

字符编码Java编码格式探秘

java 中如何比较两个数组对象的内容是不是相等?急