亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中比較兩個字符串數組并返回比較結果

在Java中比較兩個字符串數組并返回比較結果

MM們 2023-08-16 18:24:10
假設我有兩個數組,String[] A= {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};String[] B= {"0", "2", "4", "6", "8", "10", "12"};如何比較兩個數組,以返回另一個包含 A 中 B 中所有值的數組?返回數組:?String[] C= {"2", "4", "6","8","10"};想知道 Java 中的等價物是什么答案中的 C# 代碼:string[]?a1?=?{?"A","B",?"C",?"D"?}; string[]?a2?=?{?"A",?"E",?"I",?"M",?"Q",?"U"?,"Y"?}; string[]?result?=?a1.Where(a2.Contains).ToArray();
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

使用流API,你可以這樣做:

String[] result = Arrays.stream(a1)
                        .filter(new HashSet<>(Arrays.asList(a2))::contains)
                        .toArray(String[]::new);

編輯:

只是對于那些好奇是否會為每個元素構造一個新集合的人來說,情況根本不是這樣。

只構造了一個Set實例,上面的代碼相當于:

List<String> list = new ArrayList<>();
HashSet<String> strings = new HashSet<>(Arrays.asList(a2));
for (String s : a1) { 
   if (strings.contains(s)) list.add(s); 
}
String[] result = list.toArray(new String[0]);


查看完整回答
反對 回復 2023-08-16
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

Set<String> a = new HashSet<>(Arrays.asList(a1));
Set<String> b = new HashSet<>(Arrays.asList(a2));
a.retainAll(b);
String[] results = a.toArray(new String[a.size()]);


查看完整回答
反對 回復 2023-08-16
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

比較適用于以下聲明:

???System.out.println("is?A?equals?to?B:?"?+?Arrays.equals(A,?B));
???String?[]?joined?=?ObjectArrays.concat(A,?B,?String.class);
???System.out.println("Joined?Array"?+joined);
查看完整回答
反對 回復 2023-08-16
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號