这是一个非常小的问题......我似乎在这里遇到了太多复杂问题:我必须实现像{42,someString}这样的索引结构。我试过了:
Object entry[][] = new Object[1][1];
ArrayList<Object> my_list = new ArrayList<Object>();
然而,这看起来很奇怪。是不是只有存储一些Integer和String的更简单的解决方案?我需要搜索字符串并返回整数...所以我认为Collections和ArrayLists是Java API中的好朋友。
答案 0 :(得分:18)
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("Some String", 42);
// or, more correctly:
map.put("Some String", Integer.valueOf(42));
您可以使用
进行搜索Integer result = map.get("Some String");
参考: Sun Java Tutorial&gt; Collection Trail&gt; Interfaces&gt; The Map Interface
// single dimension, not multi-dimension
Object[] entry = new Object[]{"Some String",Integer.valueOf(42)};
// use interface as variable, not implementation type
// generic type is object array, not object
List<Object[]> myList = new ArrayList<Object[]>();
// add array to list
myList.add(entry);
现在你可以这样搜索:
for(final Object[] candidate : myList){
if("Some String".equals(candidate[0])){
System.out.println("Result: " + candidate[1]);
break;
}
}
但是,这仅供参考,请勿这样做。集合框架包含几乎所有标准案例的解决方案。使用地图。
答案 1 :(得分:2)
制作元组课程
public Class IntegerStringTuple {
private Integer number;
private String string;
//setters and getters etc.
}
答案 2 :(得分:2)
如果我理解正确,你应该使用地图。
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(42, "someString");
String str = map.get(42);
答案 3 :(得分:1)
只需使用HashMap
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("foo",42);
答案 4 :(得分:0)
为什么不使用地图?
Map<String,Object>
答案 5 :(得分:0)
听起来你想要Map
答案 6 :(得分:0)
我会使用Map。地图用于存储键值对。
Map<String, Integer> map = new HashMap<String, Integer>();
答案 7 :(得分:0)
当您需要维护订单时,不能使用Map而不是ArrayList。
答案 8 :(得分:0)
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
arr2.add(1);
arr2.add(2);
arr2.add(3);
arr1.add(arr2);
for(int i=0;i<arr1.size();i++){
System.out.println("i:"+arr1.get(i));
for(int j=0;j<((ArrayList)arr1.get(i)).size();j++){
System.out.println("j:"+((ArrayList)arr1.get(i)).get(j));
}
}
输出:i:[1,2,3]
j:1
j:2
j:3