Java数组是一种非常常见的数据结构,可以存储一组相同数据类型的元素。下面我将详细讲解如何在Java中实现去掉重复值、增加、删除数组元素的方法。
Java数组去重
Java数组去重的实现通常有两种方法:使用HashSet或使用双循环。
使用HashSet
String[] array = new String[]{"a", "b", "c", "a", "d", "e", "c"};
Set<String> set = new HashSet<>(Arrays.asList(array));
String[] newArray = set.toArray(new String[0]);
System.out.println(Arrays.toString(newArray));
这段代码首先创建一个String类型的数组,然后将数组转换为HashSet,去重之后再转换回数组输出。其核心思想是使用HashSet的特性,它可以去掉重复的元素。
使用双循环
int[] array = new int[]{1, 2, 3, 4, 3, 2};
int len = array.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (array[i] == array[j]) {
array[j] = array[len - 1];
len--;
j--;
}
}
}
int[] newArray = Arrays.copyOf(array, len);
System.out.println(Arrays.toString(newArray));
这段代码首先创建一个int类型的数组,然后使用两个for循环,遍历数组中的每个元素,当发现重复元素时,将该元素替换为数组末尾的元素,并将数组长度减1,j坐标回退。这个方法比较暴力,但是效率比HashSet高。
Java数组增加元素
Java数组增加元素有两种常见方式:使用Arrays.copyOf()或使用System.arraycopy()方法。
使用Arrays.copyOf()
int[] array = new int[]{1, 2, 3, 4, 5};
int numToAdd = 6;
array = Arrays.copyOf(array, array.length + 1);
array[array.length - 1] = numToAdd;
System.out.println(Arrays.toString(array));
这段代码首先创建一个int类型的数组,然后调用Arrays.copyOf()方法将数组长度增加1,最后将numToAdd添加到数组的最后一位。
使用System.arraycopy()
int[] array = new int[]{1, 2, 3, 4, 5};
int numToAdd = 6;
int[] newArray = new int[array.length + 1];
System.arraycopy(array, 0, newArray, 0, array.length);
newArray[newArray.length - 1] = numToAdd;
System.out.println(Arrays.toString(newArray));
这段代码首先创建一个int类型的数组,然后创建一个长度比原数组大1的新数组,并使用System.arraycopy()方法将原数组复制到新数组中。最后将numToAdd添加到新数组的最后一位。
Java数组删除元素
Java数组删除元素的方法有很多,比较常用的有以下两种:
第一种方式
int[] array = new int[]{1, 2, 3, 4, 5};
int indexToRemove = 3;
for (int i = indexToRemove; i < array.length - 1; i++) {
array[i] = array[i + 1];
}
array = Arrays.copyOf(array, array.length - 1);
System.out.println(Arrays.toString(array));
这段代码首先创建一个int类型的数组,然后指定要删除的元素所在的索引。使用for循环将索引之后的所有元素向前移动一位,最后将数组长度减1,实现删除元素。
第二种方式
int[] array = new int[]{1, 2, 3, 4, 5};
int indexToRemove = 3;
int[] newArray = new int[array.length - 1];
int j = 0;
for (int i = 0; i < array.length; i++) {
if (i != indexToRemove) {
newArray[j++] = array[i];
}
}
System.out.println(Arrays.toString(newArray));
这段代码首先创建一个int类型的数组,然后指定要删除的元素所在的索引。使用for循环遍历数组,若元素不是要删除的元素,则将元素添加到新的数组中,最后输出新的数组。
通过以上示例,相信大家已经理解了Java数组去重、增加、删除元素的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java数组,去掉重复值、增加、删除数组元素的实现方法 - Python技术站