Java Array Remove remove(int[] a, int[] b)

Here you can find the source of remove(int[] a, int[] b)

Description

remove

License

Open Source License

Declaration

public static int[] remove(int[] a, int[] b) 

Method Source Code


//package com.java2s;
/*/*from   w ww.  ja va  2  s  . c  o  m*/
 * #%L
 * G
 * %%
 * Copyright (C) 2014 Giovanni Stilo
 * %%
 * G is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program.  If not, see
 * <https://www.gnu.org/licenses/lgpl-3.0.txt>.
 * #L%
 */

import java.util.Arrays;

public class Main {
    public static int[] remove(int[] a, int[] b) {
        Arrays.sort(a);
        Arrays.sort(b);

        int[] rest = null;
        int k = 0;
        if (a.length > 0 && b.length > 0) {
            rest = Arrays.copyOf(b, b.length);
            for (int j = 0; j < b.length; j++) {
                for (int i = 0; i < a.length; i++) {
                    if (a[i] == b[j]) {
                        rest[j] = -1;
                        j++;
                        k++;
                        if (j >= b.length) {
                            break;
                        }
                    }
                }
            }
        } else {
            return b;
        }

        Arrays.sort(rest);

        return Arrays.copyOfRange(rest, k, rest.length);
    }
}

Related

  1. remove(boolean[] array, boolean value)
  2. remove(String[] initial, String... toExclude)
  3. remove(String[] target, String[] needRemoved)
  4. remove(T[] a, int i)
  5. removeAll(E[] array, Object... toRemove)