当前位置: 首页 > 面试题库 >

在列表末尾放置null

魏楷
2023-03-14
问题内容

我需要在的末尾放置空对象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


问题答案:

您可以使用Collections.sort和自定义对它进行排序Comparator

这里是比较代码:

@Override 
public int compare(String left, String right) {
 if (left == right) {
   return 0;
 }
 if (left == null) {
   return 1;
 }
 if (right == null) {
   return -1;
 }
 return 0;
 }

请注意,根据此值具有相等值的元素Comparator将不会重新排序。来自Collections.sort

这样的排序保证是稳定的:相等元素不会由于排序而重新排序。



 类似资料:
  • 问题内容: 我经常在我要放在第一位的项目前加上’ _ ‘。 我可以使用某种魔法人物将物品放在列表的末尾吗? 比“ z_item” 更 优雅的 东西。 从 _custom文件夹1 _custom folder2 收件箱 寄件箱 垃圾邮件文件夹 至 收件箱 寄件箱 垃圾邮件文件夹 [?]自定义文件夹1 [?]自定义文件夹2 是的,这是COT式的。 问题答案: 特殊导入字符,它将使您的文件夹位于列表的末

  • 问题内容: 我有一个清单: 列表的长度不确定,因此我尝试将对象追加到list1的末尾,如下所示: 但是我的输出始终显示此错误:AttributeError:’NoneType’对象没有属性’append’ 这是因为list1从一个空列表开始吗?如何解决此错误? 问题答案: 实际 更改 列表。同样,它需要一个 item ,而不是一个列表。因此,您所需要做的就是 (请注意,在这种情况下,您可以使用。)

  • 我创建了一个包含2张(标签)的谷歌表。 第一张表格是自动创建的,它从我的谷歌广告中获取一些数据。 第二张工作表是我手动创建的。现在 1) 我希望日期行从第一个工作表自动填充,但如何设置从第一列到第一个工作表列末尾的范围?因为现在我将其设置为,但明天Sheet1列将一直到G,我需要手动将范围设置为G2。 2)在印象行下,我希望每列从工作表1中求和3列。这意味着第一列公式将是,第二列将是以此类推直到S

  • 问题内容: 这是我所拥有的: 如何编写代码以在列表末尾添加节点? 所以如果我有 我怎么去 其实…我什至不确定是否要添加到最后。我认为添加然后排序是有效的吗?不确定。 谢谢! 问题答案:

  • 我需要创建一个组合框,可以有一个按钮在其列表视图的结尾。该列表可以添加或删除项目,当项目数量超过5个时,会显示一个滚动条。此外,当选择一个项目时,该列表视图不会自动关闭。 如何像下面的截图一样添加一个按钮“新项目”? 这是源代码: helloApplication.java 你好控制器.java 您好,查看.fxml

  • 我有一个使用Spring和RabbitMQ的项目设置。目前,我的应用程序可能会收到一条amqp消息,在另一个异步进程完成之前无法处理该消息(遗留和完全分离,我无法控制)。因此,结果是我可能不得不等待处理消息一段时间。其结果是变压器出现异常。 当消息被NACK回rabbitMQ时,它会将其放回队列的头部,并立即重新拉入队列。如果我收到的无法处理的消息等于并发侦听器的数量,我的工作流就会被锁定。它转动