I am doing gift (String-type) storage, using arrays, with the maximum 500 million. I want to get the number of used elements in an array like how many gifts are currently in sto
You can iterate through the array and count the initialized array elements.
int counter = 0;
for (int i = 0; i < arrayName.length; i ++)
if (arrayName[i] != null)
counter ++;
Also it would be even better if you used ArrayList<String>
so you could use size()
ArrayList<String> arrayName = new ArrayList<String>(20);
System.out.println(arrayName.size());
It will print 0, as there are no elements added to the ArrayList.
You can use Arrays.stream to iterate over this array of strings, then use filter to select nonNull elements and count them:
String[] arr = {"aaa", null, "bbb", null, "ccc", null};
long count = Arrays.stream(arr).filter(Objects::nonNull).count();
System.out.println(count); // 3
Or if you want to find the index of the first null
element to insert some value there:
int index = IntStream.range(0, arr.length)
.filter(i -> arr[i] == null)
.findFirst()
.getAsInt();
arr[index] = "ffffd";
System.out.println(index); // 1
System.out.println(Arrays.toString(arr));
// [aaa, ffffd, bbb, null, ccc, null]
See also: How to find duplicate elements in array in effective way?