Bランクレベルアップメニュー 文字と整数の組のソート Java  解答

# STEP: 36 インクリメント
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_0

## 解答
```java:step36.java
import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int result = addUp(n, 1);
        System.out.println(result);
    }
    
    /**
     * nとmの足し算する関数
     * 流用性を高める為に足し算する数字は任意で決めれるようにする
     * 
     * @param n 標準入力
     * @param m nに足したい数字
     * 
     * @return 足し算結果
     * */
    public static int addUp(int n, int m){
        return n + m;
    }
}
```
## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/01f65a12-60a6-6065-9e1e-3f2090aafc18.png)

# STEP: 37 数字のみの出力
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_1

## 解答
```java:step37.java
import java.util.*;


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

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        // 改行
        sc.nextLine();
        displayNumbers(n, sc);
    }
    
    /**
     * 数字を表示する関数
     * 行数が指定されている為、whileではなくfor文を使用
     * 
     * @param n 行数
     * @praam sc 標準入力
     * */
    public static void displayNumbers(int n, Scanner sc){
        for(int i = 0; i < n; i++){
            sc.next();
            System.out.println(sc.nextInt());
        }
    }
}
```
## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/e3520c90-e945-af9a-c231-78ef5899a4f8.png)

# STEP: 38 昇順ソート出力
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_2

## 解答
```java:step.java
import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        // 改行
        sc.nextLine();
        String line = sc.nextLine();
        
        // 文字の配列を作成
        String[] strArray = line.split(" ");
        
        // 整数の配列を作成する
        int[] intArray = createAnArrayOfNumbers(n, strArray);
        
        // ソート表示する
        toSort(n, intArray);
    }
    
    /**
     * 整数の配列を返却する関数
     * 
     * @param n 配列数
     * @param strArray 文字の配列
     * 
     * @return 整数の配列
     * */
    public static int[] createAnArrayOfNumbers(int n, String[] strArray){
        int[] intArray = new int[n];
        for(int i = 0; i < n; i++){
            intArray[i] = Integer.valueOf(strArray[i]);
        }
        
        return intArray;
    }
    
    /**
     * ソートする
     * 
     * @param n 配列数
     * @param intArray 文字の配列
     * */
    public static void toSort(int n, int[] intArray){
        Arrays.sort(intArray);
        for(int a: intArray){
            System.out.println(a);
        }
    }
}
```
## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/5cceda27-8680-d60b-d86c-e0ac7b31f861.png)

# FINAL問題 文字と整数の組のソート
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_9

## 解答
```java:final.java
import java.util.*;


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

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        showSortResults(n, sc);
        sc.close();
    }
    
    /**
     * 数字を昇順にソートし数字の対応する文字を表示する関数
     * 
     * @param n 行数
     * @param sc 文字と整数の組み合わせ標準入力
     * */
    public static void showSortResults(int n,  Scanner sc){
        Map<Integer, String> map = new HashMap<>();
        int[] intArray = new int[n]; 
        for(int i = 0; i < n; i++){
            String value = sc.next();
            int key = sc.nextInt();
            map.put(key, value);
            intArray[i] = key;    
        }  
        
        // Keyのソート
        Arrays.sort(intArray);
        for(int i = 0; i < n; i++){
            System.out.println(map.get(intArray[i]));
        }
    }
}
```
## 結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/4c20082a-5f2b-a8f1-3048-def29861ce3b.png)