4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Java]Paizaでよく使うコード集

Posted at

著者

Javaを用いてPaizaを解き始めた駆け出しエンジニアです。
元々はJavaScriptを用いてBランク程度の問題を解いていたのですが、業務でJavaを使用することになったので、学習のアウトプットとしてPaizaを活用しています。(有料会員)

JavaScriptで問題を解く時と比べてJavaだと文字列→数値の変換や、配列の扱い方、定義の仕方など、暗記しづらいがよく使うコードがたくさんあるなと感じました。

そこで、自分のアウトプット兼備忘録のために、Paizaでよく出てくるコードを載せました。
(Paizaでは、解答を転載することは禁止されているので、解答自体を載せることはしません。あくまでメソッドや定義の解説になります。)

int型で入力値を保存
        int n = sc.nextInt();
        int m = sc.nextInt();
数値を文字列変換
int num = 10;

String str = String.valueOf(num);
文字列を数値変換
String str = "24";

int num = Integer.parseInt(str);
listを作成し、中身に入力値を代入
        List<Integer> a = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            a.add(sc.nextInt());
        }
配列を作り、文字を格納
String[] s = new String[n];
        for (int i = 0; i < n; i++) {
            s[i] = sc.next();
        }
配列を出力
System.out.println(Arrays.toString(arr1)); //配列
System.out.println(Arrays.deepToString(array)); //多重配列
配列の最大値と最小値を出力
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }

        Arrays.sort(a);

        System.out.println(a[n - 1] + " " + a[0]);
配列のn番目の文字を抜き出す
public class StrCharAt {
	public static void main(String[] args) {
		String str = "こんにちは";
		System.out.println(str.charAt(3)); //ち
	}
}
配列やlistの中身の取り出し
        for (int x : a) {
            System.out.println(x);
        }
listの要素数の取得
list.size();
listをソートする
// 昇順
Collections.sort(リスト名);

// 降順
Collections.sort(リスト名,  Collections.reverseOrder());
配列のソート
Arrays.sort(配列名);

Arrays.sort(配列名,  Collections.reverseOrder());
listの配列のインデックスの順番を逆にする
Collections.reverse(a);
listの要素を削除
array.remove(array.indexOf("さむらい"));
listの重複を削除して昇順にした配列を新たに作成
        List<Integer> li = Arrays.asList(1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4);
        Set<Integer> a = new TreeSet(li);
配列の中身の平均値を出す
        int sum = 0;
        for (int x : a) {
            sum += x;
        }
        double ave = (double) sum / n;
二重配列の作成例
int[][] a new int[n][5];
for (int i = 0; i < n; i++) {
	for (int j = 0; j < 5; j++) {
		a[i][j] = sc.nextInt();
	}
}
二重配列で差を出力
for (int i = 0; i < n; i++){
	for (int j = i + 1; j < n; j++){
		if(Math.abs(a[i] - a[j]) < diff) {
			diff = Math.abs(a[i] - a[j]);
			if(a[i] < a[j]) {
				taller = a[j];
				shorter = a[i];
			} else {

				}
		}
	}
}
ハッシュマップ例
Map<Integer, String> map = new HashMap<>();
map.put(10, "Ten");
map.put(100, "Hundred");
map.put(1000, "Thousand");
System.out.println(map);

// {100=Hundred, 1000=Thousand, 10=Ten}
1行ずつ出力
public class SimpleTesting{
	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<>();
		map.put(10, "Ten");
		map.put(100, "Hundred");
		map.put(1000, "Thousand");
		for (Integer key: map.keySet()){  
			System.out.println(key+ " = " + map.get(key));
		} 
	}
}

// 100 = Hundred
// in1000 = Thousand
// 10 = Ten
mapに対して、keySetメソッドを使用して、キー値を取得
import java.util.*;
 
public class Main {
    public static void main(String[] args) throws Exception {
        
        // Mapの宣言
        Map<Integer, String> mMap1 = new HashMap<Integer, String>();
        
        // Mapにデータを格納
        mMap1.put( 1, "apple");
        mMap1.put( 2, "orange");
        mMap1.put( 3, "melon");
        
        // keySetを使用して、キーを取得する
        Set<Integer> MapSet = mMap1.keySet();
        
        // Setインタフェースの変数MapSetの値を確認
        for (Iterator<Integer> n = MapSet.iterator(); n.hasNext();)
        {
            System.out.println(n.next());
        }
    }
}

// 1
// 2
// 3

keySetメソッドを使用すれば、putメソッドで追加したMapのset値が返却
されます。keySetメソッドで取得したMapSetの中身をループで確認すると、Mapのキー値が取得できていることがわかります。

ハッシュマップの値をkeyListにしてソートして出力
ArrayList<Integer> keyList = new ArrayList<>(ab.keySet());
        Collections.sort(keyList);

        for (Integer x : keyList) {
            System.out.println(x + " " + bc.get(ab.get(x)));
        }

よくググってしまうのは、listと配列のメソッドですね。
いまだになぜlistと配列というものがあるのか不思議です。(JSだと配列のみ使うので)

Javaは難しいので根気良く学習していきます。

まさかりなどコメントをバンバン募集しています。
私も、この記事を見た人も勉強になるので、間違い等ありましたら指摘のほどよろしくお願いします。

Twitter

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?