怎么去除数组中的空值_怎么定义一个空数组

怎么去除数组中的空值_怎么定义一个空数组在 Java 中 去除数组中的空素可以通过以下几种方法实现 1 使用 Java 8 的流 API Streams javaimport java util Arrays import java util stream Collectors String sysNames Alice null Bob String filteredName

在Java中,去除数组中的空素可以通过以下几种方法实现:

1. 使用Java 8的流API(Streams):

 import java.util.Arrays; import java.util.stream.Collectors; String[] sysNames = {"", "Alice", null, "Bob", ""}; String[] filteredNames = Arrays.stream(sysNames) .filter(str -> str != null && !str.isEmpty()) .toArray(String[]::new); 

2. 使用Guava库的`Collections2.filter()`方法:

 import com.google.common.collect.Collections2; String[] sysNames = {"", "Alice", null, "Bob", ""}; List 
  
    
  
    filteredNames = Collections2.filter(Arrays.asList(sysNames), str -> str != null && !str.isEmpty()); 
   String[] result = filteredNames.toArray(new String); 

3. 使用循环和`ArrayList`:

 import java.util.ArrayList; import java.util.List; String[] sysNames = {"", "Alice", null, "Bob", ""}; List 
  
    
  
    tmp = new ArrayList<>(); 
   for (String str : sysNames) { if (str != null && !str.isEmpty()) { tmp.add(str); } } String[] filteredNames = tmp.toArray(new String); 

4. 使用`Arrays.asList`和`stream`结合:

 import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; String[] sysNames = {"", "Alice", null, "Bob", ""}; List 
  
    
  
    tmp = Arrays.asList(sysNames).stream() 
   .filter(str -> str != null && !str.isEmpty()) .collect(Collectors.toList()); String[] filteredNames = tmp.toArray(new String); 

5. 使用`Arrays.fill()`方法清空数组,然后重新添加非空素:

 import java.util.Arrays; String[] sysNames = {"", "Alice", null, "Bob", ""}; Arrays.fill(sysNames, null); // 清空数组 for (int i = 0; i < sysNames.length; i++) { if (sysNames[i] != null && !sysNames[i].isEmpty()) { sysNames[i] = sysNames[i]; // 重新添加非空素 } } 

以上方法都可以有效地去除数组中的空素。选择哪种方法取决于你的具体需求和偏好。需要注意的是,Java中的数组空间是由Java虚拟机自动管理的,当数组不再被引用时,Java虚拟机会自动回收该数组的空间。如果你需要清空整个数组,可以使用`Arrays.fill()`方法将所有素设置为指定的默认值

编程小号
上一篇 2024-12-24 07:12
下一篇 2024-12-24 07:08

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/145635.html