0

A と B という文字列リストがあります。binarySearch コレクションを使用して、これら 2 つの arraylist の間で共通の要素を検索したいと考えています。これら2つの文字列arraylistにbinarySearchを使用して、リストから共通の要素を出力できるようにする方法。

このコレクションを適用して、このような単一の要素を見つけることができます

 int index = Collections.binarySearch(arrayList,"4");

System.out.println("Element found at : " + index);

しかし、binarySearch コレクションを 2 つの文字列リストに適用して、共通の要素を取得するにはどうすればよいですか?

4

3 に答える 3

1

ループを使用する必要があります。

System.out.println("Common elements");
for(String s: list1)
    if(Collections.binarySearch(list2, s) >=0)
       System.out.println(s);
于 2012-04-19T09:04:15.160 に答える
1

を使用する特定の要件がない限り、そのような種類の操作にbinarySearch使用することをお勧めします。java.util.Set

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class SetTest {

    public static void main(String[] args) {
        Set<String> a = new HashSet<String>(Arrays.asList("a", "b", "c"));
        Set<String> b = new HashSet<String>(Arrays.asList("b", "c", "d"));
        a.retainAll(b);
        System.out.println(a);
    }
}

出力:

[b, c]
于 2012-04-19T09:18:03.903 に答える
0

このようなものが動作するはずです:

List<String> a = new ArrayList<String>();


List<String> b = new ArrayList<String>();
Collections.sort(b);

for (String str : a)
{
    index = Collections.binarySearch(b, str);
    if (index > 0)
    {
        System.out.println("Duplicate Item " + str + " found at index " + index);
    }
}
于 2012-04-19T09:05:44.423 に答える