2016-10-16 10 views
-1

文字列とintを使って(2)2次元配列を作成しようとしていますが、後で並べ替えることができますコード。これは、これまでの私のコードであり、私は何をすべきかわからないコンパイルとイムしようとしたときにエラーが発生しておいてください。他のデータ構造については(2)6×3の2次元配列を作成する方法(文字列と整数を保持できる)

public class SchoolBus { 

    public static void main(String[] args) { 
     Student[][] students = new Student[6][3]; 
     students[0][0] = "Mabel"; 
     students[0][1] = new int[1]; 
     students[0][2] = new Integer(2); 
     students[1][0] = "Dipper"; 
     students[1][1] = new Integer(1); 
     students[1][2] = new Integer(4); 
     students[2][0] = "Sam"; 
     students[2][1] = new Integer(1); 
     students[2][2] = new Integer(7); 
     students[3][0] = "Ian"; 
     students[3][1] = new Integer(2); 
     students[3][2] = new Integer(3); 
     students[4][0] = "Jordan"; 
     students[4][1] = new Integer(2); 
     students[4][2] = new Integer(6); 
     students[5][0] = "Steven"; 
     students[5][1] = new Integer(2); 
     students[5][2] = new Integer(9); 
     System.out.println(student); 
    } 
} 
+2

は、それが配列であることを_have_ていますか?これにはより良いデータ構造があります。 「関連する整数と文字列のコレクションを最善に保存するにはどうすればよいですか」という質問に答えることを希望しますか? –

+2

また、クラス「Student」をどこかに定義したようです。私たちがあなたのためにより良い答えを生み出すことができるように、それを見ることは有益でしょう。 –

+0

あなたの配列の型は 'Student'なので、それが保持するものです。 –

答えて

0

を、例えばListなどのコレクションを使用することを検討してください。コレクションによって簡単に並べ替えることができます。ここで

は一例です:

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Objects; 

public final class SchoolBus { 
    private SchoolBus() { 

    } 

    public static void main(final String[] args) { 
     final List<Student> students = new ArrayList<>(); 

     students.add(new Student("Mabel", 1, 2)); 
     students.add(new Student("Dipper", 1, 4)); 
     students.add(new Student("Sam", 1, 7)); 
     students.add(new Student("Ian", 2, 3)); 
     students.add(new Student("Jordan", 2, 6)); 
     students.add(new Student("Steven", 2, 9)); 

     System.out.println(students); 

     Collections.sort(students, SchoolBus::compare); 

     System.out.println(students); 
    } 

    public static int compare(final Student a, final Student b) { 
     return a.getName().compareTo(b.getName()); 
    } 

    private static final class Student { 
     private final int a; 
     private final int b; 
     private final String name; 

     public Student(final String name, final int a, final int b) { 
      this.name = Objects.requireNonNull(name, "name == null"); 
      this.a = a; 
      this.b = b; 
     } 

     public int getA() { 
      return this.a; 
     } 

     public int getB() { 
      return this.b; 
     } 

     public String getName() { 
      return this.name; 
     } 

     @Override 
     public String toString() { 
      return String.format("Student: [Name=%s], [A=%s], [B=%s]", this.name, Integer.toString(this.a), Integer.toString(this.b)); 
     } 
    } 
} 
関連する問題