🔖

javaメソッドメモ

に公開

1. Setの意味

Set<String> seen = new HashSet<>();

Set は Java のコレクションフレームワークの一つです。リスト(List)とは異なり、Set は順序を保持しないコレクションであり、重複を許さないという特徴があります。

Set に同じ要素を何度追加しても、最初の一回しか追加されません。例えば、"A" を2回追加しても、セットの中には "A" は1回しか存在しません。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int q = Integer.parseInt(sc.nextLine()); // 数字
        String w = sc.nextLine(); // "A B A B A"
        String[] f = w.split(" "); // ["A", "B", "A", "B", "A"]
        
        Set<String> seen = new HashSet<>(); // 重複を防ぐためにSetを使う
        for (int i = 0; i < q; i++) {
            seen.add(f[i]); // 重複した要素は無視される
        }
        
        System.out.println(seen.size());  // Setのサイズが異なる文字列の数
    }
}

StringBuilderとindexOf()/charAt()

charAt()=取り出す
文字列"あいうえお"からcharAt(0)なら"あ"を取り出す

indexOf()=検索して番号返す。あれば要素番号・なけらば-1返す
value = "あいうえお"
value.indexOf() => 2
value.indexOf() => -1
// Torvaldsから母音抜いてTrvldsに変換

import java.util.*;
public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        String vowels = "aeiouAEIOU";
        StringBuilder a = new StringBuilder();
        
        for (int i =0; i < line.length(); i++){ // length=8
            char c = line.charAt(i); // charaAt()は取り出す
            if(vowels.indexOf(c) == -1){ // indexOf()は()内の要素を検索してあればインデックス番号・なければ-1返す
                a.append(c); // 子音なら追加
            }
        }
        System.out.println(a);// Trvlds
    }
}

Math.abs(a - b);

Math.abs(a - b); は、Javaで絶対値を求めるメソッドです。

int a = 3;
int b = 7;
System.out.println(Math.abs(a - b));  // → 4

a = 7;
b = 3;
System.out.println(Math.abs(a - b));  // → 4

順番に数字を取得して配列に格納したい

3 // 1個目は数字何個か 3個とってね
3 // 1個目の要素
1 // 2個目の要素
4 // 3個目の要素

int n = Integer.parseInt(sc.nextLine()); // 例えば 3回

int[] numbers = new int[n];
for (int i = 0; i < n; i++) {
  numbers[i] = Integer.parseInt(sc.nextLine());
}

連続する文字を 1つにする

String l = "--ai-u---eo";
String c = l.replaceAll("-+", "-");  // "-"が1回以上続く → "-"に置き換える
System.out.println(c);  // 出力: "-ai-u-eo"

Math.min()とMath.max()

Math.min(a, b)は、引数abの小さい方の値を返すJava標準ライブラリのメソッド。

int min = Math.min(10, 20); // min は 10 になる
int min2 = Math.min(30, 5); // min2 は 5 になる
int min = Integer.MAX_VALUE; // 初期値として最大値を設定⇒必ず小さくなっていくから
int max = Integer.MIN_VALUE; // 初期値として最小値を設定⇒必ず大きくなっていくから

// 各日について処理
for (int i = 0; i < days; i++) {
    // dayTimeを計算する部分(例: start + flight + (24 - end))
    int dayTime = calculateDayTime();

    // 最小値の更新
    min = Math.min(min, dayTime);

    // 最大値の更新
    max = Math.max(max, dayTime);
}

// 最終的に最小値と最大値を出力
System.out.println(min); // 最小値
System.out.println(max); // 最大値
タイトル
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int days = Integer.parseInt(sc.nextLine());
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;

        for (int i = 0; i < days; i++) {
            String[] parts = sc.nextLine().split(" ");
            int start = Integer.parseInt(parts[0]);
            int flight = Integer.parseInt(parts[1]);
            int end = Integer.parseInt(parts[2]);

            int dayTime = start + flight + (24 - end);
            min = Math.min(min, dayTime);
            max = Math.max(max, dayTime);
        }

        System.out.println(min);
        System.out.println(max);
    }
}

Discussion