文字列の組み合わせに基づいて重複を削除するにはどうすればよいですか?

Raj Raichand

getA(例:123)とgetB(例:456)を比較して、重複するレコードを見つけたい。

P1   getA           getB 
1    000123000      456      
P2   getA           getB 
2    000123001      456 

以下を試しましたが、getA&のgetB組み合わせに基づいて重複が見つかりました

Map<Object, Boolean> findDuplicates = productsList.stream().collect(Collectors.toMap(cm -> Arrays.asList(cm.getB(),cm.getA().substring(3, cm.getCode().length() - 3)), cm -> false, (a, b) -> true));

ここで、cm.getA値が最も低いがcomapartorを使用できないレコードを削除しようとしています。

productsList.removeIf(cm -> cm.getA() && findDuplicates .get(Arrays.asList(cm.getB(),cm.getA().substring(3, cm.getA().length() - 3))));

何か助けていただければ幸いです。

スワパンプラマニック

重複キーのブール値へのマップの代わりに、重複キーとTreeSetのマップを使用することもできます。これは1つのステップでそれを作ります。TreeSetの場合と同様に、要素は常に並べ替えられたままなので、最小値を見つけるために次の手順で並べ替える必要はありません。

public class ProductDups {

    public static void main(String[] args) {

        List<Product> productsList = new ArrayList<>();
        productsList.add(new Product("000123000", "456"));
        productsList.add(new Product("000123001", "456"));
        productsList.add(new Product("000124003", "567"));
        productsList.add(new Product("000124002", "567"));

        List<Product> minDuplicates = productsList.stream()
                .collect(
                        Collectors.toMap(
                                p -> Arrays.asList(p.getB(),
                                        p.getA().substring(3, p.getA().length() - 3)),
                                p -> {
                                    TreeSet<Product> ts = new TreeSet<>(Comparator.comparing(Product::getA));
                                    ts.addAll(Arrays.asList(p));
                                    return ts;
                                },
                                (a, b) -> {
                                    a.addAll(b);
                                    return a;
                                }
                        )
                )
                .entrySet()
                .stream()
                .filter(e -> e.getValue().size() > 1)
                .map(e -> e.getValue().first())
                .collect(Collectors.toList());
        System.out.println(minDuplicates);

    }
}
class Product {

    String a;
    String b;

    public Product(String a, String b) {
        this.a = a;
        this.b = b;
    }

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

    @Override
    public String toString() {
        return "Product{" +
                "a='" + a + '\'' +
                ", b='" + b + '\'' +
                '}';
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL Serverの列(カンマ区切り)を組み合わせて重複行を削除するにはどうすればよいですか?

分類Dev

Rの行の値の組み合わせに基づいて新しい変数(列)を作成するにはどうすればよいですか?

分類Dev

複数のテキストファイルを組み合わせて、重複を効果的に削除するにはどうすればよいですか?

分類Dev

特定の文字列の組み合わせが同じ行の他の列にあるかどうかに基づいて、列の値を変更するにはどうすればよいですか?(パンダ)

分類Dev

複数の文字列を組み合わせて、それらの間にコンマを出力するにはどうすればよいですか?

分類Dev

2つの文字を文字列に組み合わせるにはどうすればよいですかc#

分類Dev

複数の文字を組み合わせてJavaで文字列を作成するにはどうすればよいですか?

分類Dev

複数の文字を組み合わせて文字列を作成するにはどうすればよいですか?

分類Dev

複数の文字列ベクトルを組み合わせてRでデータ構造を作成するにはどうすればよいですか?

分類Dev

Rの特定のパラメーターに基づいて行を組み合わせるにはどうすればよいですか?

分類Dev

値に基づいて2つの辞書を組み合わせるにはどうすればよいですか?

分類Dev

pandasデータフレームの列を重複する名前と組み合わせるにはどうすればよいですか?

分類Dev

Pythonリストから重複する組み合わせタプルを削除するにはどうすればよいですか?

分類Dev

ボタンとして組み合わせて機能するImageViewに重複するTextViewを実装するにはどうすればよいですか?

分類Dev

パンダ:他の列の複数のリストを組み合わせて新しい列を追加するにはどうすればよいですか?

分類Dev

2つの配列の最初の要素を組み合わせて文字列配列にするにはどうすればよいですか?

分類Dev

dplyrでmutateと組み合わせてminimumを使用する場合、重複を処理するにはどうすればよいですか?

分類Dev

SQLで、複数の列に基づいて重複する行を削除するにはどうすればよいですか?

分類Dev

Pythonで文字列の数字とピリオドの組み合わせを削除するにはどうすればよいですか?

分類Dev

数字と文字が組み合わされた配列のコンポーネントが、数字に基づいて相互に成功するかどうかを判断するにはどうすればよいですか?

分類Dev

パンダ:列の内容のさまざまな組み合わせに基づいて複数の値を割り当てるにはどうすればよいですか?

分類Dev

条件に基づいて長さが等しくないデータフレームを組み合わせるにはどうすればよいですか

分類Dev

パンダを使用して特定の列に基づいて重複する値を削除するにはどうすればよいですか?

分類Dev

JavaScriptで文字列と指定された置換のすべての組み合わせを取得するにはどうすればよいですか?

分類Dev

パスと文字列をバッチで組み合わせるにはどうすればよいですか?

分類Dev

複数の入力行を1つの文字列に組み合わせるにはどうすればよいですか?

分類Dev

異なる「r」番号を持つ文字列のすべての組み合わせを作成するにはどうすればよいですか?

分類Dev

正規表現を文字列と組み合わせるにはどうすればよいですか?

分類Dev

別の列の条件に基づいて重複する行を削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    SQL Serverの列(カンマ区切り)を組み合わせて重複行を削除するにはどうすればよいですか?

  2. 2

    Rの行の値の組み合わせに基づいて新しい変数(列)を作成するにはどうすればよいですか?

  3. 3

    複数のテキストファイルを組み合わせて、重複を効果的に削除するにはどうすればよいですか?

  4. 4

    特定の文字列の組み合わせが同じ行の他の列にあるかどうかに基づいて、列の値を変更するにはどうすればよいですか?(パンダ)

  5. 5

    複数の文字列を組み合わせて、それらの間にコンマを出力するにはどうすればよいですか?

  6. 6

    2つの文字を文字列に組み合わせるにはどうすればよいですかc#

  7. 7

    複数の文字を組み合わせてJavaで文字列を作成するにはどうすればよいですか?

  8. 8

    複数の文字を組み合わせて文字列を作成するにはどうすればよいですか?

  9. 9

    複数の文字列ベクトルを組み合わせてRでデータ構造を作成するにはどうすればよいですか?

  10. 10

    Rの特定のパラメーターに基づいて行を組み合わせるにはどうすればよいですか?

  11. 11

    値に基づいて2つの辞書を組み合わせるにはどうすればよいですか?

  12. 12

    pandasデータフレームの列を重複する名前と組み合わせるにはどうすればよいですか?

  13. 13

    Pythonリストから重複する組み合わせタプルを削除するにはどうすればよいですか?

  14. 14

    ボタンとして組み合わせて機能するImageViewに重複するTextViewを実装するにはどうすればよいですか?

  15. 15

    パンダ:他の列の複数のリストを組み合わせて新しい列を追加するにはどうすればよいですか?

  16. 16

    2つの配列の最初の要素を組み合わせて文字列配列にするにはどうすればよいですか?

  17. 17

    dplyrでmutateと組み合わせてminimumを使用する場合、重複を処理するにはどうすればよいですか?

  18. 18

    SQLで、複数の列に基づいて重複する行を削除するにはどうすればよいですか?

  19. 19

    Pythonで文字列の数字とピリオドの組み合わせを削除するにはどうすればよいですか?

  20. 20

    数字と文字が組み合わされた配列のコンポーネントが、数字に基づいて相互に成功するかどうかを判断するにはどうすればよいですか?

  21. 21

    パンダ:列の内容のさまざまな組み合わせに基づいて複数の値を割り当てるにはどうすればよいですか?

  22. 22

    条件に基づいて長さが等しくないデータフレームを組み合わせるにはどうすればよいですか

  23. 23

    パンダを使用して特定の列に基づいて重複する値を削除するにはどうすればよいですか?

  24. 24

    JavaScriptで文字列と指定された置換のすべての組み合わせを取得するにはどうすればよいですか?

  25. 25

    パスと文字列をバッチで組み合わせるにはどうすればよいですか?

  26. 26

    複数の入力行を1つの文字列に組み合わせるにはどうすればよいですか?

  27. 27

    異なる「r」番号を持つ文字列のすべての組み合わせを作成するにはどうすればよいですか?

  28. 28

    正規表現を文字列と組み合わせるにはどうすればよいですか?

  29. 29

    別の列の条件に基づいて重複する行を削除するにはどうすればよいですか?

ホットタグ

アーカイブ