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;

/**
 * @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[0]);
        String[] deleteArr = deleteList.toArray(new String[0]);
        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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM