JAvaは配列または集合に要素があるかどうかを判定する


引用:
今日グループの中に友达が「どのように1つの配列の集合がすでに現在の対象が存在するかどうかを知っていますか」と聞いて、みんなは循環の対比を知っていて、私のこの大神のグループの友达を含めて.他に方法はありませんか?この編を見よう.
本文:
ここを見つけられるのはプログラマーでしょう.直接コードをつけるともっとはっきりするはずです.

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test implements Serializable {

    private static final long serialVersionUID = 2640934692335200272L;

    public static void main(String[] args) {

        // data segment
        String[] SAMPLE_ARRAY = new String[] { "aaa", "solo", "king" };
        String TEST_STR = "king";
        Collection TEMPLATE_COLL = new ArrayList();
        TEMPLATE_COLL.add("aaa");
        TEMPLATE_COLL.add("solo");
        TEMPLATE_COLL.add("king");
        // <- data segment

        // 1,             
        // 1-1,     API
        Arrays.sort(SAMPLE_ARRAY);
        int index = Arrays.binarySearch(SAMPLE_ARRAY, TEST_STR);
        System.out.println("1-1_sort-binarySearche:"
                + ((index != -1) ? true : false));

        // 1-2,     ( Arrays.toString()   “, [ ]”          )
        String tmp = Arrays.toString(SAMPLE_ARRAY);
        Pattern p = Pattern.compile("king");
        Matcher m = p.matcher(tmp);
        System.out.println("1-2_toString-Regex:" + m.find());

        // 1-3,      ,  。
        // TODO:         ,    5   。

        // 2,          
        // 2-1,     contains
        System.out.println("2-1_contains:" + TEMPLATE_COLL.contains(TEST_STR));

        // 2-1-1,   :
        //      ,       “     ” “   ”    。
        Collection coll = new ArrayList<String>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        //       
        Collection collExists = new ArrayList(coll);
        Collection collNotExists = new ArrayList(coll);

        collExists.removeAll(TEMPLATE_COLL);
        System.out.println("2-1-1_removeAll[exist]:" + collExists);
        collNotExists.removeAll(collExists);
        System.out.println("2-1-1_removeAll[notexist]:" + collNotExists);

    }

}

実行結果:

1-1_sort-binarySearche:true
1-2_toString-Regex:true
2-1_contains:true
2-1-1_removeAll[exist]:[bbb, ccc]
2-1-1_removeAll[notexist]:[aaa]


まとめてみよう~.
1)配列は少なくとも3種類:
    A)binarySearch(,).しかし、条件は事前にソートする必要があり、オーバーヘッドは考慮する必要があります.
    B)Regex.ただし配列を文字列に変換する必要があり、Arraysクラスが提供するメソッドには「,[]」の3つの分割子が導入され、判定結果に影響を与える可能性があります.
C)サイクルペアリング.
2)少なくとも2つのコレクション:
A)サイクル.デフォルトが存在すると判定した場合(カスタマイズされていない場合)は、直接考慮しないことをお勧めします.
    B)contains.頼りになるなら思い切って頼りなさい.
3)集合は「加減算」のような演算を提供しているので,注意しておくことができる.