在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", ""};ListfilteredNames = 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", ""};Listtmp = 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", ""};Listtmp = 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()`方法将所有元素设置为指定的默认值

