簡體   English   中英

如何將兩個 arrays 中的常用詞保存到第三個數組中?

[英]How do I save common words from two arrays into a third array?

我正在嘗試保存 arr1 和 arr2 中的所有常用詞,然后存儲到 arr3。

String[] arr1 = {"pEace", "happiness", "Gives", "So", "aaa"};
String[] arr2 = {"pEace", "HappiNess", "joy", "give", "AAA", "enjoy", "learN"};

int k = 0;
String[] arr3 = new String[0];
for (int i = 0; i < arr1.length; i++) {
    for (int j = 0; j < arr2.length; j++) {
        if (arr1[i].equalsIgnoreCase(arr2[j])) {
            System.out.println(arr1[i]);
            arr3[k] = arr1[i];
            k++;
        }
    }
}
System.out.println(Arrays.toString(arr3));

arr3 的初始大小為 0

字符串[] arr3 = 新字符串[0];

您應該初始化大小為 arr1 和 arr2 的總長度或使用ArrayList 在那個例子中是 12

您可以將這些arrays轉換為collections然后使用retainAll方法。 它在不同的 collections 中工作方式不同。

在線嘗試!

// Convert arrays to collections
String[] arr1 = {"pEace", "happiness", "Gives", "So", "aaa", "learn"};
String[] arr2 = {"pEace", "HappiNess", "joy", "give", "AAA", "learN"};

Collection<String> coll1 = Arrays.asList(arr1);
Collection<String> coll2 = Arrays.asList(arr2);
// ArrayList
ArrayList<String> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();

list1.addAll(coll1);
list2.addAll(coll2);

list2.retainAll(list1);

System.out.println(list2); // [pEace]
// TreeSet
TreeSet<String> set1 = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
TreeSet<String> set2 = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);

set1.addAll(coll1);
set2.addAll(coll2);

set2.retainAll(set1);

System.out.println(set2); // [AAA, HappiNess, learN, pEace]

另請參閱: TreeSet 是否可能等於 HashSet 但不是 HashSet 等於 TreeSet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM