復習 - HashSet
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部。レッスン 28/59。
チャレンジ
簡単processHashSetという名前のメソッドを作成し、次の3つの引数を受け取るようにします。
HashSet<Object>(set)- 処理対象の
Object(input) - 実行する操作を指定する
String(operation)
if/else文と、すでに学習したHashSetのメソッドを使用して、メソッドはoperationに基づいてStringを返す必要があります。
"add":inputをセットに追加します。追加された場合は"Added successfully"を、すでにセットに存在していた場合は"Element already exists"を返します。"remove":セットからinputを削除します。削除された場合は"Removed successfully"を、セットに存在しなかった場合は"Element not found"を返します。"find":セットにinputが含まれている場合は"Found at index: [index]"を返します([index]は反復順序における要素の位置です)。含まれていない場合は"Element not found"を返します。"count":"Number of elements: [count]"を返します。ここで[count]はセット内の要素数です(size()を使用します)。
まず入力を検証します。
setがnullの場合:"Invalid set"を返します。operationがnull、または上記4つのいずれでもない場合:"Invalid operation"を返します。"find"操作の場合、inputがnullなら:"Cannot find null"を返します。
自分で試してみよう
import java.util.HashSet;
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static String processHashSet(HashSet<Object> set, Object input, String operation) {
// ここにコードを書いてください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 初期セットを読み取る
String[] items = scanner.nextLine().split(",");
HashSet<Object> set = new HashSet<>();
if (!items[0].equals("empty")) {
for (String item : items) {
// まず整数として解析を試みる
try {
set.add(Integer.parseInt(item));
} catch (NumberFormatException e) {
set.add(item);
}
}
}
// 入力を読み取る
String inputStr = scanner.nextLine();
Object input;
try {
input = Integer.parseInt(inputStr);
} catch (NumberFormatException e) {
input = inputStr;
}
// 操作を読み取る
String operation = scanner.nextLine();
System.out.println(processHashSet(set, input, operation));
}
}ロジックとフローのすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ