java - 空列表的加权顺序

标签 java arraylist null comparator

我一直在尝试实现 Comparator应该根据位置权重对列表进行排序的类。我将解释我应该完成什么。

假设我有一个 ArrayList<T> 。该数组列表始终具有固定大小,用null填充其他槽。值。

//fixed size = 3
T myObj1, myObj2;
[myObj1, null, myObj2];

在此示例中,myObj2 < myObj1 ,因为它存储在位置值小于第一个位置的槽中。

排序比较器应给出以下输出:

//fixed size = 3
T myObj1, myObj2;
[myObj1, myObj2, null];

其他示例:

//fixed size = 7;
T myObj1, myObj2, myObj3, myObj4;
INPUT = [myObj1, null, null, myObj4, myObj3, myObj2, null];
RESULT = [myObj1, myObj4, myObj3, myObj2, null, null, null];

我考虑过使用Comparator<T> (T是一个具体的类,实际上不需要是通用的);有没有办法复制这种行为?

最佳答案

您始终可以在比较器中使 null 返回 > 0

if (one == null && two == null) {
    return 0;
} else if (two == null) {
    return -1;
} if (one == null) {
    return 1;
} else {
   //Compare logic...
}

这表示空值比非空值“更大”

关于java - 空列表的加权顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60060439/

相关文章:

java - RecyclerView 搜索过滤器不起作用

java - CXF 未将父类(super class)添加到生成的类中

java - 将数组添加到 ArrayList

java - 在 JComponent 中存储形状

r - 为什么 rapply 和 lapply 处理 NULL 的方式不同?

database-design - 在 MySQL 数据库中存储空字符串与 NULL 值?

java - 我应该将配置类注释为 @Configuration 以进行测试吗?

java - 从 Solr 获取数据到 JTable

java - ArrayList删除重复元素

java - 三星 Galaxy S3 中缩放位图失败