Javaは2セットの差を計算します(List <String>)

問題の説明:

大きな食器セットAと小さな食器セットBがあります。これら2つのセット、つまりAには存在するがBには存在しないセットの違いを見つける必要があります。

ソリューション:

  1. 小さなテーブルセットBをHashSetに変換します。
  2. 大きなテーブル内の全量のデータをトラバースして、要素がHashSetに存在するかどうかを判断し、存在しない場合は、一時リストに配置します。
  3. 最後に、一時リストが返されます。

アルゴリズムの実装:

package com.test;

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

public class ExceptList {
    
    

    private static List<String> getExceptList(List<String> allList, List<String> partList) {
    
    

        if (allList != null && partList != null && !partList.isEmpty()) {
    
    
            HashSet<String> partSet = new HashSet<>(partList);
            List<String> exceptList = new ArrayList<>();
            for (String str : allList) {
    
    
                if (!partSet.contains(str)) {
    
    
                    exceptList.add(str);
                }
            }
            return exceptList;
        } else {
    
    
            return allList;
        }
    }

    public static void main(String[] args) {
    
    
        List<String> allList = new ArrayList<>();
        allList.add("aaa");
        allList.add("bbb");
        allList.add("ccc");
        allList.add("ddd");

        List<String> partList = new ArrayList<>();
        partList.add("bbb");
        partList.add("ccc");
        partList.add("eee");

        List<String> exceptList = getExceptList(allList, partList);
        System.out.println(exceptList);
    }
}

おすすめ

転載: blog.csdn.net/piaoranyuji/article/details/107979540