如何获取数组中不为null的元素



我正在使用数组进行礼物(字符串类型(存储,最大值为5亿。我想得到一个数组中使用的元素的数量,比如目前有多少礼物,(例如,我存储了253538份礼物,但我不知道。Java中有没有一个命令可以知道数组中只有253538个插槽包含一个元素(。但我不知道该怎么做。下面是我想使用的代码片段:

static String[] Gifts = new String[500000000];
static int i = 0;
String command, Gift;
while (true) {
//Gift Array Console
String command = scan.next();
if (command == "addgift") {
String Gift = scan.next();
Gifts[i] = Gift;
i++;
}
}

您可以遍历数组并计算非null数组元素。

int counter = 0;
for (int i = 0; i < arrayName.length; i ++) {
if (arrayName[i] != null)
counter ++;
}

此外,如果你使用ArrayList<String>,那么你可以使用size(),那会更好

List<String> arrayName = new ArrayList<String>(20);
System.out.println(arrayName.size());

它将打印0,因为ArrayList中没有添加任何元素。

您可以使用Arrays.stream迭代这个字符串数组,然后使用filter选择nonNull元素和count元素:

String[] arr = {"aaa", null, "bbb", null, "ccc", null};
long count = Arrays.stream(arr).filter(Objects::nonNull).count();
System.out.println(count); // 3

或者,如果您想找到第一个null元素的索引,在那里插入一些值:

int index = IntStream.range(0, arr.length)
.filter(i -> arr[i] == null)
.findFirst()
.getAsInt();
arr[index] = "ddd";
System.out.println(index); // 1
System.out.println(Arrays.toString(arr));
// [aaa, ddd, bbb, null, ccc, null]

另请参阅:如何以有效的方式找到数组中的重复元素

相关内容

  • 没有找到相关文章

最新更新