Jea*_*lea 7 java arrays hashmap data-structures
我习惯使用PHP,但最近我一直在使用Java,而且我正在努力解决这个问题.我想在Java中保存这个表示:
Array (
["col_name_1"] => Array (
1 => ["col_value_1"],
2 => ["col_value_2"],
... ,
n => ["col_value_n"]
),
["col_name_n"] => Array (
1 => ["col_value_1"],
2 => ["col_value_2"],
... ,
n => ["col_value_n"]
)
)
是否有一种干净的方式(即没有脏代码)来保存这个东西在Java?注意; 我想使用字符串作为数组索引(在第一维度),我不知道数组的确定大小..
Dav*_* L. 15
尝试使用Map<String, List<String>>.这将允许您将字符串作为键/索引用于外部映射,并将结果作为字符串列表作为值.您可能希望使用a HashMap作为外部地图,ArrayList使用内部列表.
如果你想要一些类似于你初始化它的PHP的干净代码,你可以这样做:
Map<String, List<String>> columns = new HashMap<String, List<String>>() {{
put("col_name_1", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
put("col_name_2", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
put("col_name_n", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
}};
Run Code Online (Sandbox Code Playgroud)
Vin*_*vic 12
您可以使用Map和List(这些都是以多种方式实现的接口,供您选择最适合您的情况).
有关更多信息,请查看Map和List的教程,也许您应该从Collections教程开始.
一个例子:
import java.util.*;
public class Foo {
public static void main(String[] args) {
Map<String, List<String>> m = new HashMap<String, List<String>>();
List<String> l = new LinkedList<String>();
l.add("col_value_1");
l.add("col_value_2");
//and so on
m.put("col_name_1",l); //repeat for the rest of the colnames
//then, to get it you do
List<String> rl = m.get("col_name_1");
}
}
Run Code Online (Sandbox Code Playgroud)
你想要一个地图,它几乎可以被任何东西所锁定.HashMap在大多数情况下都可以工作.
像这样的东西.
List<String> col1Vals = new java.util.ArrayList<String>();
col1Vals.add("col_value_1");
col1Vals.add("col_value_2");
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("col_name_1", col1Vals);
Run Code Online (Sandbox Code Playgroud)
如果你想要更简单的东西,那么commons-lang库就有了一个MultiMap.
| 归档时间: |
|
| 查看次数: |
1093 次 |
| 最近记录: |