Tuesday 15 June 2010

java - retain specific elements in an array from an array that are in another array -



java - retain specific elements in an array from an array that are in another array -

let's have 2 array;

integer[] array= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 200, 5, 6, 5 }; integer[] array2= { 12, 2 ,3, 2, 200, 5 };

im trying create method homecoming array element removed except in nowadays in array2, output of method should be

{2 ,3, 5, 200, 5, 5 }

i dont want utilize info construction , have no thought how code im trying do, im not sure how can determinate resulting array length

thanks

if understand question, begin creating contains(integer[], integer) method. iterate array , homecoming true if array contains value.

private static boolean contains(integer[] a, integer v) { (integer t : a) { if (t.equals(v)) { homecoming true; } } homecoming false; }

then can leverage iterate arrays twice. 1 time perform count, , sec time populate newly created array count number of elements. like,

public static integer[] retainall(integer[] a, integer[] b) { int count = 0; (integer val : a) { if (contains(b, val)) { count++; } } integer[] out = new integer[count]; count = 0; (integer val : a) { if (contains(b, val)) { out[count++] = val; } } homecoming out; }

then test it,

public static void main(string[] args) { integer[] array = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 200, 5, 6, 5 }; integer[] array2 = { 12, 2, 3, 2, 200, 5 }; system.out.println(arrays.tostring(retainall(array, array2))); }

output requested

[2, 3, 5, 200, 5, 5]

of course, utilize arrays.aslist(t...) , retainall() like

public static integer[] retainall(integer[] a, integer[] b) { list<integer> al = new arraylist<>(arrays.aslist(a)); al.retainall(arrays.aslist(b)); homecoming al.toarray(new integer[al.size()]); }

java arrays retain

No comments:

Post a Comment