使用 Java 集合类
Java 提供了丰富的集合类,包括映射、集、列表和队列。此示例代码显示了 PHP 脚本可以如何利用这些类。正如前面所述,创建一个新 PHP 脚本(例如,MoreJava.php)并添加以下代码:
<?php
$map = new Java("java.util.HashMap");
$map->put("title", "Java Bridge!");
$array = array(1, 2, 3, 4, 5);
$map->put("stuff", $array);
var_dump($map->get("stuff"));
echo $map->get("title");
?>
现在可以打开浏览器,指向 :8080/MoreJava.php,您将看到以下输出,如图 3 中所示。
图 3. 使用 Java 集合类的 Web 浏览器输出
PHP 脚本:
● 创建 Java HashMap 类的实例。
● 将包含 Java Bridge! 的字符串存储在映射中。
● 突出 Java 和 PHP 类型之间的互操作性。
● 创建 PHP 数组,并将其存储在 Java 映射中,如下面的代码所示。
$array = array(1, 2, 3, 4, 5);
$map->put("stuff", $array);
对映射进行 put 调用时,PHP 数组会转换为最接近的 Java 类型,即 Java Map.与此类似,当 get 调用从 $map 读回值时,会将其转换回常规 PHP 数组。这可以在不进行任何复制的情况下进行,因为 PHP 数组具有两个个性类型,即 PHP 数组和 Java 映射。
遍历 Java 集合
尝试使用以下代码替换 MoreJava.php 脚本:
<?php
$list = new Java("java.util.ArrayList");
var_dump($list);
$date = new Java("java.util.Date", 70, 9, 4);
echo "<br/>";
$list->add("Java Bridge!");
$list->add($date);
$list->add(array(1, 2, 3, 4, 5));
$iterator = $list->iterator();
while ($iterator->hasNext() == TRUE) {
var_dump($iterator->next()); echo "<br/>";
}
?>
现在可以打开浏览器,指向 :8080/MoreJava.php,您将看到以下输出,如图 4 中所示。
图 4. 遍历 Java 集合的 Web 浏览器输出
此示例显示了使用 Java ArrayList 类的 PHP.而且,还从 ArrayList 获得了迭代器,并从头到尾对集合进行了扫描。迭代器的内容按顺序写入,首先是字符串 Java Bridge!,然后是 Java Date 对象,最后是包含五个数字的 PHP 数组。