0

所以......我今天才看到Java for Web,而且我已经有一个巨大的项目在工作。我已经习惯了 PHP 和 C++,所以我在学习这门语言时没有这么多的麻烦,但我一直坚持这个问题。

我有一个 void 具有该格式的多维数组:

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 回答