我想從字符串中找到第一個重複的字符。我通常在php中使用array_intersect
。 Java中有類似的東西嗎? 例如:在java中是否有array_intersect()等價物?
String a=zxcvbnmz
Desired output : z
我想從字符串中找到第一個重複的字符。我通常在php中使用array_intersect
。 Java中有類似的東西嗎? 例如:在java中是否有array_intersect()等價物?
String a=zxcvbnmz
Desired output : z
array_intersect - 計算數組的交集(source)
因此,在這種情況下可以使用Set::retainAll:
Integer[] a = {1,2,3,4,5};
Integer[] b = {2,4,5,6,7,8,9};
Set<Integer> s1 = new HashSet<>(Arrays.asList(a));
Set<Integer> s2 = new HashSet<>(Arrays.asList(b));
s1.retainAll(s2);
Integer[] result = s1.toArray(new Integer[s1.size()]);
System.out.println(Arrays.toString(result));
輸出
[2, 4, 5]
你可以閱讀這個在這裏Java, find intersection of two arrays
太棒了!這個也可以。 –
歡迎您@RedBottle –
Ive upvoted先生。這完全合法。 Idk爲什麼它downvoted –
有此行爲的默認實現;但是,您可以編寫自己的解決方案!既然你想找到第一個重複的字符,你可以製作一個HashSet
的Character
s。在遍歷數組時,將每個字符添加到HashSet
,直到遇到HashSet
中已有的字符 - 這必須是第一個重複的字符。下面的實施例的代碼:
public char arrayIntersect(String string) {
HashSet<Character> hashSet = new HashSet<>();
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if (hashSet.contains(c))
return c;
else
hashSet.add(c);
}
return null;
}
此運行在O(n)的時間,如HashSet
查找在O(1)時間運行。
thnks很多。 upvoted。 –
你實際需要什麼來獲得這些值?也許我們可以回答這個問題。 –
一直試圖學習Java,並有這個問題顯示字符串中的第一個重複的字符。這在php中相當簡單。有沒有可用於簡化解決方案的內置功能? –