java – 二维ArrayList
发布时间:2020-12-15 02:02:48 所属栏目:Java 来源:网络整理
导读:这只是一个非常小的问题……我似乎遇到了太多的复杂问题:我必须实现像{42,someString}这样的索引结构.我试过了: Object entry[][] = new Object[1][1];ArrayListObject my_list = new ArrayListObject(); 然而,这看起来很奇怪.是不是只有存储一些Integer和
这只是一个非常小的问题……我似乎遇到了太多的复杂问题:我必须实现像{42,someString}这样的索引结构.我试过了:
Object entry[][] = new Object[1][1]; ArrayList<Object> my_list = new ArrayList<Object>(); 然而,这看起来很奇怪.是不是只有存储一些Integer和String的更简单的解决方案?我需要搜索字符串并返回整数…所以我认为Collections和ArrayLists是Java API中的好朋友. 解决方法
解决方案:使用地图
嗯,你或许需要Map吗? 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> Collection Trail> Interfaces> The Map Interface 修复OP的代码 顺便说一下,问题中的代码存在缺陷.如果你想使用一个对象数组列表(你不应该这样做),你会怎么做: // 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; } } 但是,这仅供参考,不要这样做.集合框架包含几乎所有标准案例的解决方案.使用地图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |