簡體   English   中英

如何檢查兩個字符串列表?

[英]How do I check two lists of strings against eachother?

參加OOP Java課程,因為我對這門語言完全陌生,而且還沒有意識到它提供的許多工具,我發現自己在黑暗中摸索着解決簡單的問題,我可以對這些問題進行硬編碼,但我覺得用java.util做更簡單的方法。

假設我有一個字符串列表

String[] stringOne = {"a","b","c", "potato"};
String[] stringTwo = {"potato", "13"};

如何檢查stringTwostringOne任何給定項目出現的stringOne 或相反亦然。 每當我遇到這個問題時,我寧願不進行雙循環(或者做一個雙循環方法)。

現在我逃避使用Collections.frequency()並且只循環一次,但有更簡單的方法嗎? 謝謝。

假設我有一個字符串列表

 String[] stringOne = {"a","b","c", "potato"}; String[] stringTwo = {"potato", "13"}; 

這些是“數組”,而不是“列表”。 Arrays.asList(stringOne)stringOne引用的數組的列表包裝器。

如何檢查stringOwo中stringTwo中任何給定項目出現的次數?

new HashSet(Arrays.asList(stringOne)).retainAll(Arrays.asList(stringTwo))

將為您提供兩者中的元素集。

使用Bag代替套裝的類似方法會讓你受到重視。

retainAll(Collection coll)

刪除任何不在給定集合中的包的成員,尊重基數。 也就是說,如果給定的集合coll包含給定對象的n個副本,並且該包具有m> n個副本,則從包中刪除m-n個副本。 另外,如果e是包中的對象但是!coll.contains(e) ,則刪除e及其任何副本。

集合類中使用的等價概念是由Object.equals(object)定義的, java.lang.String重寫該字典以按字典順序進行比較。

如果你需要在數組中返回結果,請嘗試將內容轉儲到字符串的myBag.toArray(new String[0]) 該參數在文檔中進行了解釋,但簡而言之,它是一個類型提示,可以解決Java破壞的數組方差。

暫無
暫無

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

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