我知道如何在一个hashmap上迭代,但我不确定是否可以在一个hashmap上设置两个迭代器?
假设我有以下hashmap:
Map m = new HashMap<Integer, String>;
m.put(112334,"A");
m.put(221345,"B");
m.put(321411,"C");
m.put(431254,"D");
我想从Hashmap中得到所有值的组合,这样就不会重复对。在这种情况下,4个值-
for(int i=0; i < (size-1); i++)
for(int l = 1; < size; l++)....
但是在java中,我们使用迭代器,那么我如何使用迭代器呢?(如果你能找到一种方法来使用集合的索引,那也很好)。
PS:抱歉,我刚从C转到java,所以我需要你的帮助来启动。
鉴于您的方法的其余部分,使用两个for
循环并没有什么问题,因为您在问题中发布了两个修补程序。
for(int i=0; i < (size-1); i++)
for(int l = i+1; l < size; l++)....
也就是说,当数组可能是您真正想要的时,我当然不会使用映射。
确保这些值实现了可比较的。字符串实现<代码>可比较
执行双循环以获取所有对(x,y),然后使用
compareTo
方法排除(x,x)和(y,x):
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(112334,"A");
map.put(221345,"B");
map.put(321411,"C");
map.put(431254,"D");
Collection<String> values = map.values();
for (String str1 : values) {
for (String str2 : values) {
if (str1.compareTo(str2) < 0) {
System.out.println(String.format("unique pair: (%s, %s)", str1, str2));
// or whatever you want but do not modify map here!
}
}
}
我想在HashMap中搜索重复项。目前这是我的HashMap:
我有一个HashMap,一个键作为某个类的对象,一个值作为另一个HashMap,它的键是一个字符串,值是一个双倍: 我需要一个循环,将键(对象)和值(HashMaps)添加到这个HashMap,但我不能在循环中创建一个新的HashMap变量作为它的值。本质上,每个MyClass对象都必须具有具有相应Double的Strings。 这可能吗?这有什么意义吗??
我正在尝试迭代作为参数传递给jrxml的<code>HashMap</code>的值,在<code>HashMap</code>中,这些值作为<code>List</code>传递。 例 我如何在jasper report Jr XML中迭代这些< code>List?
问题内容: 我需要遍历for循环的每次迭代的值集,但仅对于第一次迭代,它可以正常工作。此后返回。 我很清楚这种行为。 一种解决方案是在for循环中调用方法,因此对于每个for循环迭代,都会对其进行初始化。但这是非常无效的方法,因为它是独立的。 我尝试了此方法,但由于它仅包含参考,因此也无法正常工作。 有什么方法可以将迭代器复制到另一个或其他更好的方法中? 问题答案: An 是可能的最小API,可以
这么低的方法如下,有更好的建议吗?
问题内容: 今天早些时候,我需要一次遍历2个字符的字符串,以解析格式如下的字符串(有一些额外的字母)。 我最终完成了这个工作,但是看起来很丑。我最终评论了它在做什么,因为它感觉不太明显。几乎看起来像是pythonic,但并非完全如此。 有一些更好/更清洁的方法可以做到这一点吗? 问题答案: 邓诺关于清洁剂,但还有另一种选择: 无副本版本: