質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

486閲覧

ソートについて教えてください

hhd00144

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/05/21 07:44

javaを勉強しはじめた初心者です。下記の件でアドバイスをお願いします。

Mapでkey(数値)の小さい順でソートをさせたいのですが、絶対値でソート
されてしまいます。
どこが問題なのかわかりません。宜しくお願い致します。

<期待する結果>
strawberry
orange
apple
melon
pineapple

<実際の結果>
apple
orange
melon
pineapple
strawberry

コード import java.util.*; public class Sample { public static void main(String[] args) { // Mapの宣言 Map<Integer, String> mMap = new HashMap<Integer, String>(); // Mapにデータを格納 mMap.put( 1, "apple"); mMap.put( -2, "orange"); mMap.put( 4, "pineapple"); mMap.put( -5, "strawberry"); mMap.put( 3, "melon"); Object[] mapkey = mMap.keySet().toArray(); Arrays.sort(mapkey); for (Integer nKey : mMap.keySet()) { System.out.println(mMap.get(nKey)); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサーついたので別解を、そもそもソートしてもらう案です。

java

1public static void main(String[] args) { 2 // Mapの宣言 3// Map<Integer, String> mMap = new HashMap<Integer, String>(); 4 Map<Integer, String> mMap = new TreeMap<Integer, String>(); 5 6 // Mapにデータを格納 7 mMap.put( 1, "apple"); 8 mMap.put( -2, "orange"); 9 mMap.put( 4, "pineapple"); 10 mMap.put( -5, "strawberry"); 11 mMap.put( 3, "melon"); 12 13// Object[] mapkey = mMap.keySet().toArray(); 14// Arrays.sort(mapkey); 15 16 for (Integer nKey : mMap.keySet()) 17 { 18 System.out.println(mMap.get(nKey)); 19 } 20}

投稿2020/05/21 08:12

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hhd00144

2020/05/21 08:54

momon-gaさん、アドバイスをありがとうございます。考え方によってはこんなに簡潔なコードになるんですね。ありがとうございます。参考にさせていただきます。
guest

0

mapkeyをソートしていますが出力しているのはmMap.keySet()です。
mapkeyの中身を確認してみてください。

投稿2020/05/21 07:54

TestJun

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hhd00144

2020/05/21 08:13

アドバイスをありがとうございました。
guest

0

ベストアンサー

java

1import java.util.*; 2 3public class Main{ 4 5 public static void main(String[] args) { 6 // Mapの宣言 7 Map<Integer, String> mMap = new HashMap<Integer, String>(); 8 9 // Mapにデータを格納 10 mMap.put( 1, "apple"); 11 mMap.put( -2, "orange"); 12 mMap.put( 4, "pineapple"); 13 mMap.put( -5, "strawberry"); 14 mMap.put( 3, "melon"); 15 16 Integer[] mapkey = mMap.keySet().toArray(new Integer[0]); 17 Arrays.sort(mapkey); 18 19 for (Integer nKey : mapkey) 20 { 21 System.out.println(mMap.get(nKey)); 22 } 23 } 24 25}

投稿2020/05/21 07:53

ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hhd00144

2020/05/21 08:09

修正のコードを記述いただきありがとうございました。参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問