Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于PHP中的类型混合多维数组,JAVA中最好的等效解决方案是什么?_Java_Php_Arrays_List_Multidimensional Array - Fatal编程技术网

对于PHP中的类型混合多维数组,JAVA中最好的等效解决方案是什么?

对于PHP中的类型混合多维数组,JAVA中最好的等效解决方案是什么?,java,php,arrays,list,multidimensional-array,Java,Php,Arrays,List,Multidimensional Array,我一直使用PHP,而且我对Java是新手。我现在已经阅读了一些关于hashmaps、arraylist等的教程,但我现在不知道哪一个是适合我的。在PHP中,我曾创建如下数组: $test['google']['color'] = "red"; $test['google']['value'] = 67; $test['IBM']['color'] = "blue"; $test['apple']['value'] = 23; . . 我还想搜索键和值。Java中最好的选择是什么?这不是类型混合

我一直使用PHP,而且我对Java是新手。我现在已经阅读了一些关于hashmaps、arraylist等的教程,但我现在不知道哪一个是适合我的。在PHP中,我曾创建如下数组:

$test['google']['color'] = "red";
$test['google']['value'] = 67;
$test['IBM']['color'] = "blue";
$test['apple']['value'] = 23;
.
.

我还想搜索键和值。Java中最好的选择是什么?

这不是类型混合数组,而是包含关联数组的关联数组。最后,您只得到一个类型-integer

Java不支持关联数组,但是这可以通过使用映射轻松实现

Map<String, Int> map = new HashMap<String, Integer>();
map.put("name", 1);
map.put("fname", 2);

map.get("name"); // returns 1

它的可能副本不是类型混合数组。您显示的是一个二维整数数组,其键是字符串。因此,在Java中很容易将其表示为映射的映射。但总的来说,你应该记住,你不应该在两种语言之间找到完全相同的词。相反,您应该找到正确的数据结构,以帮助您在当前语言中正确地解决问题,并且不会强迫它看起来像其他语言。对不起,我的错!我需要一个类型混合数组。谢谢你的建议。这就是我问的原因。我不确定哪一个是正确的数据结构:)在这种情况下,问问自己——为什么类型是混合的?在Java中,通常将具有共同点的对象收集在一起。使用混合类型数组通常是表示对象的一种惰性方式。Thx但是我应该如何保存数据呢?我如何区分“颜色”和“价值”,但仍然知道它们是为同一家公司提供的?我可以创建两个哈希图,如“公司,颜色”和“公司,价值”,但在我看来,这似乎是相当糟糕的代码:)谢谢,我试试这个。但我犯了上面的一个错误。我需要一个类型混合数组,但似乎您的解决方案仍然是不错的选择?我现在不太确定。可能您需要重新考虑您到底需要什么,并可能创建具有良好属性的新类。@johnboy,您可以在映射声明中将
Integer
替换为
Object
。然后,您将被允许放置任何类型的对象。
Map<String, Map<String, Integer>> mapAssociated = new HashMap<String, Map<String, Integer>>;
mapAssociated,put('example', map);
Object[][] data = {
    {"mykey1", "myval1"},
    {"mykey2", "myval2"},
    {new Date(), new Integer(1)},
};