检查表仅包含一个非null元素,并使用Java 8进行检索

时间:2019-03-20 14:42:37

标签: java arraylist java-8 java-stream

如何检查列表中是否只有一个非null元素,如果是,则使用Java 8或Streams检索该元素?

我的一种方法返回对象列表,该对象需要检查返回的列表是否仅包含一个非null对象。如果是这样,它将创建一个如下定义的映射,否则,需要记录以下错误。

`public void myMethod() {
    List<MyClass> tst = getAll();
    if(!tst.isEmpty() ) {
      if( tst.size() == 1) {
       if(tst.get(0)!= null) {
          MyClass class1 = tst.get(0);
          Map<Integer,MyClass> m = 
             Stream.of(class1).collect(Collectors.toMap(MyClass:: getId, 
                 Function.identity()));
          }
        }
      else {
        LOGGER.error("Multiple object found - {} object", tst.size());
      }
    }`

我正在寻找一种以干净且标准的格式书写的方法,因为我有三个If条件

1 个答案:

答案 0 :(得分:0)

类似的事情应该可以解决,但它不使用流。如果您真的需要使用流,请这样说,我将尝试一下:)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim gen1 As New System.Random
    Dim random As Integer
    Dim B1 As String

    random = gen1.Next(0, 101)
    Select Case random
        Case Is <= 50
            MessageBox.Show("less than or = to 50")
        Case Else
            MessageBox.Show("More than or = to 51")
    End Select
End Sub