作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个字符串值列表。我使用比较器按如下特定顺序对它们进行排序
public static final List<String> CUSTOM_LIST = Arrays.asList("Red", "Green", "Blue");
comparator = new Comparator<String>(){
@Override
public int compare(final String o1, final String o2){
return Integer.valueOf(CUSTOM_LIST.indexOf(o1))
.compareTo(Integer.valueOf(CUSTOM_LIST.indexOf(o2)));
}
};
所以比较一下
Collections.sort(listToSort,comparator);
或者反向排序
Collections.sort(listToSort,Collections.reverseOrder(comparator));
现在我的列表有空值,我希望它们始终位于最后。我该如何实现?
最佳答案
比较接口(interface)返回一个数字,标记两个对象之间的差异。请注意,由于总是希望空值位于末尾,因此我们必须确保返回的整数值大于(或小于)任何其他整数值,这样所有空值都将被拉到 Collection
.
comparator = new Comparator<String>(){
@Override
public int compare(final String o1, final String o2){
if(o1.isEmpty()) return Integer.MAX_VALUE;
else if (o2.isEmpty()) return Integer.MIN_VALUE;
else return Integer.valueOf(ModuleConstants.CUSTOM_LIST.indexOf(o1))
.compareTo(
Integer.valueOf(ModuleConstants.CUSTOM_LIST.indexOf(o2)));
}
};
关于java - 如何在排序结束时始终有空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389187/
我有一个名为 FeedView 的 View ,由 FeedViewController 处理。 我还有一个名为“NearestStore”的 XIB,它由一个名为“NearestStoreViewC
我有一个警报表,其中 tr 元素是使用 JS 动态添加/删除的。问题是它有一个 border-top 将它与上面的内容分开,当表格为空时我想隐藏这些内容。我试过 :empty 和 display:no
我是一名优秀的程序员,十分优秀!