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