简体   繁体   中英

copy array without specified element java

i'm trying copy an array without a specified element. Let's say I have the following arrays:

int[] array = {1,2,3,4,5,6,7,8,9};
int[] array2 = new int[array.length-1];

what I want is to copy array to array2 without the element containing the int "6" so it will contain "{1,2,3,4,5,7,8,9}"

I only want to use for loops and this is what I have so far but it doesnt work

int[] array= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int[] array2= new int[array.length - 1];
    int remove = 6;
    for (int i = 0; i < array2.length; i++) {
        if (array[i] != remove) {
            array2[i] = array[i];
        } else {
            array2[i] = array[i + 1];
            i++;
        }
    }
    for (int i = 0; i < array2.length; i++) {
        System.out.println(array2[i]);
    }

Thanks

You can also do it using Java 8's streams and lambda expressions:

int[] array= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] array2 = Arrays.stream( array ).filter( value -> value != 6 ).toArray();
System.out.println( Arrays.toString( array2 ) );
// Outputs: [1, 2, 3, 4, 5, 7, 8, 9]
int j = 0;
int count = 0; //Set this variable to the number of times the 'remove' item appears in the list
int[] array2 = new int[array.length - count];
int remove = 6;
for(int i=0; i < array.length; i++)
{
   if(array[i] != remove)
       array2[j++] = array[i];
}

ArrayUtils.remove(array, 6) from apache.commons.lang might also be suitable

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM