Javaはどうやって重复した文字列を検索するのか?
繰り返し文字列を見つけるには、HashMapを使って各文字の出現回数を記録する。
具体的には、以下の手順に従います。
- 入力された文字列の出現回数を、文字列をキー、その回数を値とするHashMapオブジェクトとして作成する。
- 入力文字の配列やリストを反復処理する。
- 指定された文字列が存在する場合、その文字列カウントを1インクリメントします。
- キーがなければ、HashMapに文字列をキーとして追加し、その出現回数を1に設定します。
- 最後に、HashMapのすべてのキーバリューペアを走査して、出現回数が1より大きい文字列、すなわち重複した文字列を検索します。
サンプルコードは以下をご覧ください:
import java.util.HashMap;
import java.util.Map;
public class FindDuplicateStrings {
public static void main(String[] args) {
String[] strings = {"hello", "world", "hello", "java", "world"};
Map<String, Integer> stringCountMap = new HashMap<>();
for (String str : strings) {
if (stringCountMap.containsKey(str)) {
int count = stringCountMap.get(str);
stringCountMap.put(str, count + 1);
} else {
stringCountMap.put(str, 1);
}
}
for (Map.Entry<String, Integer> entry : stringCountMap.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("重复字符串:" + entry.getKey());
}
}
}
}
コードを実行して出力される結果は次のようになります。
重复字符串:hello
重复字符串:world