作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是Java新手,我遇到了以下问题。我需要按升序对整数数组进行排序,以便偶数位于一半,奇数位于另一半。
所以,我有一个特殊的比较器:
static class EvenOddSort implements Comparator<Integer> {
@Override
public int compare(Integer x, Integer y) {
if (x == y) {
return 0;
}
if (y % 2 == 0) {
if (x < y) {
return -1;
} else {
return 1;
}
}
if (x % 2 == 0) {
if (x < y) {
return 1;
} else {
return -1;
}
}
return 0;
}
}
以及以下排序方法:
public Integer[] sortEvenOdd(Integer[] nums) {
EvenOddSort customSort = new EvenOddSort();
Arrays.sort(nums, customSort);
return nums;
}
我还有以下测试:
@Test
public void testSortEvenOdd1() {
Integer[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Integer[] expected = { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 };
assertArrayEquals(expected, tasks5.sortEvenOdd(nums));
}
当我在 openJDK6
上运行时失败,在 openJDK7
上运行成功。
arrays first differed at element [0]; expected:<2> but was:<1> junit.framework.AssertionFailedError: arrays first differed at element [0]; expected:<2> but was:<1>
openJDK
吗?欢迎任何想法!
最佳答案
你的整个比较器坏了,我不断发现它有更多问题。
只需执行以下操作:
if (x%2 != y%2) {
if (x%2==0) {
return -1;
} else {
return 1;
}
} else {
return x.compareTo(y);
}
首先检查它们是否不是都是奇数或都是偶数。如果不同则按奇数或偶数排序。
然后,如果它们都是奇数或都是偶数,则返回到标准整数比较功能。
关于sorting - 奇偶排序不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23735303/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
这个测试行得通吗?: if (testInt/2).ofType(Integer){ //to-do if even } 我假设它会 iff 编译器在 ofType() 之前解析 testIn
我正在尝试更好地排列图像,而不仅仅是 1 列中的图像。示例见附件,每篇文章的图片可以在左右。 这是我的代码。HTML: Content 1
我有一个看起来像这样的定义: Title Entry Entry Entry Title Entry Title Entry Entry Title E
我是一名优秀的程序员,十分优秀!