我需要将空对象放在List
. 这是我为此目的所做的示例:
public static void main(String... args) {
List<String> strings = Arrays.asList(new String[]{"A", null, "B"});
for(String string : strings) {
System.out.println(string);
}
System.out.println("==================");
List<String> result = new ArrayList<String>();
List<String> nullStrings = new ArrayList<String>();
for(String string : strings) {
if(string != null) {
result.add(string);
} else {
nullStrings.add(string);
}
}
result.addAll(nullStrings);
for(String string : result) {
System.out.println(string);
}
}
我期待有一种更高效、更智能的方式来做到这一点。是否可以在实际列表中进行交换,以便将空节点放在最后,这样我就不需要其他两个列表(nullStrings,结果)和额外的迭代。
更新
排序不适用于我的情况。我制作的这个示例代码仅用于测试目的。其实我有不同类型的对象。排序也会打破位置。
说我有这个null, Obj2, Obj1
,如果做任何类似排序的事情可能会发生Obj1, Obj2, null
。但我需要Obj2, Obj1, null
。