【Java】比较两个新旧String字符串数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mr_EvanChen/article/details/80669079

1、代码如下

package com.yealink.version.util;

import org.apache.commons.lang.ArrayUtils;
import java.util.*;

/**
 * 比较两个新旧String字符串数组
 *
 * Created by yl1794 on 2018/6/12.
 */
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;
    }

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

2、运行结果

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

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/Mr_EvanChen/article/details/80669079
今日推荐