2013-03-26 49 views
0

所以......我今天刚刚看到Java的Web,我已经在工作中有一个巨大的项目。我习惯于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' 

-

实验值:很抱歉,如果这是一个愚蠢的问题,我真的没有在Java中的任何知识。我要去学习,但知道我真的需要回答这个问题。

在此先感谢。

回答

2

PHP的数组实际上并不是数组,它们是hash tables。 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. 
} 

另外,你会得到类型安全。在编译时找出问题要好得多,因为在部署应用程序之前而不是之后可以解决它们。

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]); 
} 
} 

我跳这个可以帮助你有点