0

だから...私はちょうど今日JavaforWebを見ていて、すでに巨大なプロジェクトが進行中です。私はPHPとC++に慣れているので、この言語を学ぶのにそれほど問題はありませんが、その質問にこだわっています。

その形式の多次元配列を持つボイドがあります:

array( "data" => array ( "Name" => "John", "Age" => "16" ) )

私の質問は:

その種類の配列(上記)を受け入れるようにメソッドを設定するにはどうすればよいですか?また、その多次元配列(以下)を読み取るにはどうすればよいですか?

例えば:

public void getArray(String[] data) { println(data["data"]["Name"]; }

-

getArray(array("data" => array("Name" => "John", "Age" => "16")));

// to returns: 'John'

-

Obs .:申し訳ありませんが、これがばかげた質問である場合、私は実際にJavaの知識を持っていません。私は勉強するつもりですが、知っているために私は本当にその質問に答える必要があります。

前もって感謝します。

4

2 に答える 2

2

PHPの配列は実際には配列ではなく、ハッシュテーブルです。JavaのバージョンはHashMapです。

HashMap<String, String> data = new HashMap<String, String>();
data.put("Name", "John");
// etc.
System.out.println(data.get("Name"));

PHP以外のプログラマーが一般的にこの種のことを行う方法であるため、クラスも調べる必要があります。

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

    // etc.
}

それで:

class SomeClass {
    public static void main(String[] args) {
        Person person = new Person("John", 16);
        HashMap<String, Person> people = new HashMap<String, Person>();
        people.put(person.getName(), person);
    }
}

クラスは、値を保持するだけではないため、大規模なプロジェクトでは物事を大幅に簡素化できます。

class Person {
    private String firstName;
    private String lastName;

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    /**
     * Returns a person's full name (first and last name), without
     * storing it as a seperate variable internally.
     */
    public String getName() {
         return this.firstName + " " + this.lastName;
    }

    public String getFirstName() {
         return this.firstName;
    }

    // etc.
}

さらに、型安全性が得られます。問題は、アプリケーションをデプロイした後ではなく、デプロイする前に解決できるため、コンパイル時に問題を見つける方がはるかに便利です。

于 2013-03-26T21:24:57.283 に答える
0

多次元配列を使用するときに私がすることは、次のようなものです。

public class SayHello 
{

public String[][] test;

public void Main(String[] args)
{
  SayHello test = new SayHello();
  test.test = new String[4][4];
  test.testMethod(test.test);
}

private void testMethod(String[][] array)
{
for(int i = 0; i<array.length;i++) {
  for(int x = 0;x<array[i].length;x++) {
     System.out.println(array[i][x]);
  }
}
  System.out.println(array[0][1]);
}
}

これが少しお役に立てば幸いです

于 2013-03-26T21:31:02.820 に答える