【发布时间】:2026-01-04 20:00:01
【问题描述】:
我有这个2d-Array
[[1, path1, path2, path3, path5],
[0, path1, path3, path5],
[1, path1, path2, path5]]
我想将它的元素存储在Map 中,就像这样Map<String, Pair<Integer, Integer>> information;
第一个整数是1的计数器路径,第二个整数是0的计数器路径
因此预期的输出是这样的。
path1->(2,1) // because the path1 is 2 times appeared with in the 2d-Array with 1 and 1 times with 0.
path2->(2,0)
path3->(1,1)
path5->(2,1)
这是我的尝试,我停止了,因为它不知道如何比较元素并将其元素存储在 Map 中。
导入 java.util.*;
public class HelloWorld {
public static void main(String[] args) {
List < List < String >> all = new ArrayList < > ();
List < String > arr1 = new ArrayList < > ();
arr1.add("1");
arr1.add("path1");
arr1.add("path2");
arr1.add("path3");
arr1.add("path5");
////////
List < String > arr2 = new ArrayList < > ();
arr2.add("0");
arr2.add("path1");
arr2.add("path3");
arr2.add("path5");
////////
List < String > arr3 = new ArrayList < > ();
arr3.add("1");
arr3.add("path1");
arr3.add("path2");
arr3.add("path5");
////////
all.add(arr1);
all.add(arr2);
all.add(arr3);
Map < String, Pair < Integer, Integer >> information;
System.out.println(all);
for (int i = 0; i < all.size(); i++) {
for (int j = 0; j < all.get(i).size(); j++) {
System.out.println(all.get(i).get(j));
}
}
}
public class Pair < L, R > {
private final L left;
private final R right;
public Pair(L left, R right) {
assert left != null;
assert right != null;
this.left = left;
this.right = right;
}
public L getLeft() {
return left;
}
public R getRight() {
return right;
}
@Override
public int hashCode() {
return left.hashCode() ^ right.hashCode();
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Pair)) return false;
Pair pairo = (Pair) o;
return this.left.equals(pairo.getLeft()) &&
this.right.equals(pairo.getRight());
}
}
}
【问题讨论】:
标签: java algorithm data-structures collections hashmap