Java 記事

【Java】配列の中身を昇順・降順に並べる方法【初心者向け】

記事のターゲット

  • Javaの配列について学ぼうとしている方

Arraysクラス

 Javaには配列を扱うArraysクラスというものがあるのでそちらを使用して並び替えをしていきます。

興味のある方は公式のリファレンスを見てみてください↓

https://docs.oracle.com/javase/jp/8/docs/api/java/util/Arrays.html (Java8 Arraysクラス)

昇順での使用方法:Arrays.sort(配列名)

 まずは並び替えしていない状態を見てみます。

public class Main{
    public static void main(String[] args) {

        int[] array = {6,3,1,9,4};

        for(int a : array) {
            System.out.printf("%d ", a);
        }

    }
}
6 3 1 9 4 

出力すると、初期化した時と同じ並びで出てきます。

次は並び替えをして出力してみます。

import java.util.Arrays;

public class Main{
    public static void main(String[] args) {

        int[] array = {6,3,1,9,4};

        for(int a : array) {
            System.out.printf("%d ", a);
        }

        //並び替えをするメソッドを呼び出す
        Arrays.parallelSort(array);
        System.out.println();

        for(int a : array) {
            System.out.printf("%d ", a);
        }

    }
}
6 3 1 9 4 
1 3 4 6 9 

この方法では昇順にしかできず、出力する際に反対から出力するなどの工夫が必要となりますが、Integerを使用して配列を作成すれば降順も指定することができます。

降順での使用方法:Arrays.sort(配列名, Comparator.reverseOrder());

型をintからIntegerに変更し、並び替えのメソッドを変更するだけで実装ができます。

import java.util.Arrays;
import java.util.Comparator;

public class Main{
    public static void main(String[] args) {

        Integer[] array = {6,3,1,9,4};

        for(Integer a : array) {
            System.out.printf("%d ", a);
        }

        //並び替えをするメソッドを呼び出す
        Arrays.sort(array, Comparator.reverseOrder());
        System.out.println();

        for(Integer a : array) {
            System.out.printf("%d ", a);
        }

    }
}
6 3 1 9 4 
9 6 4 3 1 

上記のように、メソッドを少し変えるだけで実装ができます。

まとめ

 Javaで基本使用されるのはもっと柔軟性のあるCollectionクラスだと思いますが、配列の大きさが決まっている場合は普通の配列の方が軽いというメリットがあるので、使う機会もあると思います。ほかにも配列に対して行えるメソッドは多く存在するので興味のある方は調べてみるといいかもしれません。

-Java, 記事
-, , ,

© 2024 ビギテック