我正在使用数组进行礼物(字符串类型(存储,最大值为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]
另请参阅:如何以有效的方式找到数组中的重复元素