我确实有int
双,即;(整数,整数)
1) 给定 k 个这样的对,检查它们是否唯一。IE; 使用 k 对形成的 Set 的大小是 k ?
2) 如果给定的 k 个记录是唯一的,则按排序顺序存储它们(按 x 并按 y 解决冲突)
3) 给定 n 个大小为 k 的集合,创建一个集合。
如果 k = 3 ,要求 1 和 2 的示例
(100, 100) (110, 300) (120, 200) 是一个有效的集合并按排序顺序排列。
(100, 100) (300, 200) (200, 300) 是一个有效集合,但不是按排序顺序排列的。
(100, 100) (100, 200) (100, 200) 在有效集合中
要求 3输入 示例:
(100, 100) (200, 300) (300, 200)
(100, 100) (200, 300) (300, 200)
(100, 100) (201, 300) (300, 200)
输出:
(100, 100) (200, 300) (300, 200)
(100, 100) (201, 300) (300, 200)
这是与我面临的真正问题最接近的类比。我需要用 Java 完成这项工作,而我从未在 Java 中工作过。我是一名中级 C++ 程序员。
我可以通过一些丑陋的编码和排序来解决 1 和 2。
但是我无法获得 3。以下是到目前为止我可以获得的 3。类对实现了可比性
(poc代码)
import java.util.HashSet;
public class set {
public static void main (String []args) {
HashSet<Pair> s1 = new HashSet();
s1.add(new Pair(10,10));
s1.add(new Pair(10,10));
HashSet<Pair> s2 = new HashSet();
s2.add(new Pair(10,10));
s2.add(new Pair(10,10));
HashSet<HashSet<Pair>> s12 = new HashSet();
s12.add(s1);s12.add(s2);
for ( HashSet<Pair> hs : s12) {
for (Pair p : hs) {
System.out.println(""+ p.toString());
}
}
}
}