1

やあ、

私はJavaが初めてで、このデータを配列(6行、3列)にプッシュする方法を見つけようとしていますか?

x1 John 6
x2 Smith 9
x3 Alex 7
y1 Peter 8
y2 Frank 9
y3 Andy 4

その後、数学的な計算を行うために最後の列から数値を取得します。

これは私のコードです...

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

        Employee eh = new Employee_hour();

        Employee_hour [] eh_list = new Employee_hour[6];
        eh_list[0] = new Employee_hour("x1", "John", 6);
        eh_list[1] = new Employee_hour("x2", "Smith", 9);
        eh_list[2] = new Employee_hour("x3", "Alex", 7);
        eh_list[3] = new Employee_hour("y1", "Peter", 8);
        eh_list[4] = new Employee_hour("y2", "Frank", 9);
        eh_list[5] = new Employee_hour("y3", "Andy", 4);
        print(eh_list);
    }

    private static void print(Employee_hour[] mass){
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
        }
        System.out.println();
    }
}

しかし、私はこれを出力として取得しています...

testing.Employee_hour@1a752144 testing.Employee_hour@7fdb04ed testing.Employee_hour@420a52f testing.Employee_hour@7b3cb2c6 testing.Employee_hour@4dfd245f testing.Employee_hour@265f00f9

最後の列から数値を取得するにはどうすればよいですか?

4

5 に答える 5

9

レコード用に特定の Java Bean を作成してみませんか?

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters
}

そして、次のように使用します。

Person [] people = new Person[10];
people[0] = new Person("x1", "John", 6);
...

またはjava.util.List、配列の代わりに使用することをお勧めします。

フィールドアクセス

個別のフィールドにアクセスするには、フィールドを public にして (非常に悪い考えです)、単純に として参照するobject_instance.field_nameか、いわゆる getter を提供する必要があります。

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters

  public int getAnotherNumber() {
     return anotherNumber;
  }
}

次に、印刷時に呼び出します。

for (int i = 0; i < mass.length; i++) {
    System.out.print(mass[i].getAnotherNumber() + " ");
}

あなたが試したことがうまくいかなかった理由:

System.out.println(mass[0])あなたの場合、オブジェクト表現全体を印刷します。デフォルトでは、あなたの場合に何をしたかを印刷します。Objectより適切に行うには、のString toString()メソッドをオーバーライドする必要があります。

class Person {
  String id;
  String name;
  int anotherNumber;
  // constructor, getters, setters

  public String toString() {
     return "{id="+id+", name="+name+", anotherNumber="+anotherNumber+"}";
  }
}
于 2012-06-20T10:37:07.813 に答える
3

Java は厳密に型指定されているため、任意の型を受け入れる配列を作成することはできません。
ただし、タイプの多次元配列を作成し、整数値Objectに使用できます。 別の方法は、テーブルの行を表すクラスを作成し、そのクラスの配列を作成することです。java.lang.Integer

于 2012-06-20T10:36:32.787 に答える
2

配列user2dimentionalarrayとして保存する場合。サンプルは次のとおりです。

String[][] a2 = new String[10][5];
   for (int i=0; i<a2.length; i++) {
   for (int j=0; j<a2[i].length; j++) {
   a2[i][j] = i;
   System.out.print(" " + a2[i][j]);
   }
   System.out.println("");
   }
  }

より良いアプローチは、オブジェクトを作成することです

class User {
  String id;
  String userName;
  int userSomeValue;

 //
}

次に、それをリストにプッシュします

User ob1=new User();
// set the values.
List<User> userList=new ArrayList<User>();
userList.add(ob1);

このリストを使用して、コンテンツを取得して処理します。

userList.get(index);
于 2012-06-20T10:45:09.150 に答える
1

Arrayジェネリック オブジェクトの配列を使用できるタイプ セーフなコレクションです。他の方法で使用しますcollection Api

于 2012-06-20T10:41:13.390 に答える
0

データを配列に格納する方法はいくつかありますが、同じ型の値は 1 つの配列にしか格納できません。たとえば、String、int、または float だけです。あなたの場合、文字列を使用する必要がありますが、数値が含まれていても文字列型の変数を使用して計算を行うことはできません。マクシモフが説明する方法を提案します。

于 2012-06-20T10:51:34.250 に答える