本文共 706 字,大约阅读时间需要 2 分钟。
我正在尝试用Java编写一点数学。我想做的是
循环陪集
去树下。陪集有一个索引和一组整数。如果集合具有相同的元素,则coset等于其他coset。如果集合不同,那么coset按其索引排序。
例如:
C1 = [1, 2, 4, 8]
C3 = [3, 6, 9, 12]
C9 = [3, 6, 9, 12]
C1 is less than C3
C3 is equal to C9
数学够了。我选择将coset放到treeset,因为我不需要重复的元素,我需要按索引对它们进行排序。
问题甚至是treeset.contains()返回false,我仍然可以在treeset中找到一个元素,当使用compareto()和equals()方法时,它是相等的。
这是程序的实际打印输出:
cosets = [C0, C1, C3, C5, C7]
cosets.contains(C9) = false
C0.compareTo(C9) = -1, C0.equals(C9) = false
C1.compareTo(C9) = -1, C1.equals(C9) = false
C3.compareTo(C9) = 0, C3.equals(C9) = true
C5.compareTo(C9) = -1, C5.equals(C9) = false
C7.compareTo(C9) = -1, C7.equals(C9) = false
我附上下面的代码。我不想把代码简化,因为我发现它有魔力。如果你改变
魔力指数
代码中的值小于等于7,它开始工作。在我看来,这就像是一个JVM bug。
有什么建议吗?
转载地址:http://dftnx.baihongyu.com/