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