PHP 中的
数组 与 Java 中的数组不同。以下是区别:
PHP:
PHP 数组实际上是字典。它们为每个键存储一个值,其中键可以是整数或字符串。如果您尝试使用其他东西作为键,它将被转换为整数或字符串。
Java:
Java 中的数组
Java 数组的关联方式与 PHP 不同。让我们从 Java 中的一维数组开始:
Java 中的一维数组有一个固定长度(不能更改)并且每个键都是一个整数,范围在0 到@987654322 @。所以键,实际上称为索引,总是整数。此外,在 Java 中,如果您有一个包含键 2 和 4 的数组,那么您还(至少)有键 0、1 和 3,因为长度必须至少为5 然后。
Java 中的数组也只有一个类型,并且数组中的每个值只能是指定的类型。数组的大小和类型都不能改变。
在 Java 中创建数组时,有两种可能:
-
创建数组时明确指定长度
String[] words = new String[4];
变量words 现在包含一个String 类型的数组,长度为4。所有索引(0 到3)的值最初设置为null。
-
创建数组时指定元素
String[] words = new String[] {"apple", "banana", "cranberry"};
变量words 现在包含一个长度为3 的String 类型的数组。包含的元素与指定的第一个元素绑定到索引0,第二个元素绑定到索引1,依此类推。
您可以将多维数组视为包含数组的数组。二维数组可能如下所示:
String[][] twoD = new String[][] {
{"apple", "banana", "cranberry"},
{"car", "ship", "bicycle"}
}
对于这个twoD[0][2] 将是"cranberry" 和twoD[1][1] 将是"ship"。但是数组的维数不会影响键是整数这一事实。
Java 中的地图:
尽管 Java 没有用于关联数组的内置语言结构,但它提供了具有各种实现的接口 Map,例如HashMap。 Map 具有键的类型和值的类型。你可以像这样使用地图:
HashMap<String, String> map = new HashMap<String, String>();
map.put("car", "drive");
map.put("boat", "swim");
System.out.println("You can " + map.get("car") + " a car.");
System.out.println("And a boat can " + map.get("boat") + ".");
这将输出:
You can drive a car.
And a boat can swim.
答案:
Java 中的一对一方式
您的问题的答案是,实际上不可能以合理的方式进行,因为您的某些值是字符串,而有些是整数。但这将是与您的 PHP 数组最相似的代码:
//array of HashMaps which have Strings as key and value types
HashMap<String, String>[] cars = new HashMap<String, String>[2];
HashMap<String, String> first = new HashMap<String, String>();
first.put("name", "vauxhall");
first.put("doors", "5");
first.put("color", "black");
HashMap<String, String> second = new HashMap<String, String>();
second.put("name", "peogeot");
second.put("doors", "3");
second.put("color", "red");
//put those two maps into the array of maps
cars[0] = first;
cars[1] = second;
这个解决方案不是很方便,但它是最接近给定数据结构的方式。
Java 中更可爱的方式
然而,您的 PHP 数组中的每个条目似乎都恰好具有三个属性:name、doors 和 color。在这种情况下,您可能希望使用这些成员变量创建一个类Car,并将它们存储在一个数组中。这看起来像这样:
public class Car {
//member variables
public String name;
public int doors;
public String color;
//constructor
public Car(String name, int doors, String color) {
this.name = name;
this.doors = doors;
this.color = color;
}
}
现在,当您拥有 Car 类时,您可以像这样创建一个包含所有汽车的数组:
Car[] cars = new Car[2];
cars[0] = new Car("vauxhall", 5, "black");
cars[1] = new Car("peogeot", 3, "red");
这是在 Java 中执行此操作的更好方法。