在Java代码中使用ArrayUtils,可以从Java数组中删除一个元素。下面的代码将删除特定索引处的一个元素(在代码中为“2”),该元素的值等于“10”。
import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
public class RemoveObjectFromArray{
public static void main(String args[]) {
int[] test = new int[] { 10, 13, 10, 10, 105};
System.out.println("Original Array : size : " + test.length );
System.out.println("Contents : " + Arrays.toString(test));
//let's remove or delete an element from Array using Apache Commons ArrayUtils
test = ArrayUtils.remove(test, 2); //removing element at index 2
//Size of array must be 1 less than original array after deleting an element
System.out.println("Size of array after removing an element : " + test.length);
System.out.println("Content of Array after removing an object : "
+ Arrays.toString(test));
} }
它的输出结果如下:
run:
Original Array : size : 5
Contents : [10, 13, 10, 10, 105]
Size of array after removing an element : 4
Content of Array after removing an object : [10, 13, 10, 105]
如何修改代码以获得以下输出:
run:
Original Array : size : 5
Contents : [10, 13, 10, 10, 105]
Size of array after removing an element : 2
Content of Array after removing an object : [ 13, 105]
new Set()
和ArrayUtils
内部也是迭代/循环数组进行操作的。如果我们必须要循环数组,为什么不在循环过程中完成工作并避免添加额外开销?c * n + k
也是O(n)
,但它比n
更慢。其中的k
是指 hashfunc。请注意,我们可以认为 hashfunc 的时间复杂度为O(1)
,而不是O(n)
。 - Kent