Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #38824
| Path | csiph.com!aioe.org!.POSTED.xV/6gj+grSZn0+TB/DGTcw.user.gioia.aioe.org!not-for-mail |
|---|---|
| From | Graeme Geldenhuys <graemeg@example.net> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Interview question - better solution for MergePurgeAndReverseOrder() |
| Date | Fri, 29 Mar 2019 15:01:01 +0000 |
| Organization | Aioe.org NNTP Server |
| Lines | 82 |
| Message-ID | <q7lbvc$152e$1@gioia.aioe.org> (permalink) |
| NNTP-Posting-Host | xV/6gj+grSZn0+TB/DGTcw.user.gioia.aioe.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8 |
| Content-Transfer-Encoding | 7bit |
| X-Complaints-To | abuse@aioe.org |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
| Content-Language | en-GB |
| X-Mozilla-News-Host | news://nntp.aioe.org:119 |
| X-Notice | Filtered by postfilter v. 0.9.2 |
| Xref | csiph.com comp.lang.java.programmer:38824 |
Show key headers only | View raw
Hi,
I recently attended a Java developer interview and had to implement the
MergePurgeAndReverseSort() method. I managed to complete it and
afterwards wrote some unit tests to confirm that it works. But is there
a better way to implement it, or did I do an okay job about it.
I can post the unit tests too if that might help.
Any feedback would be very much appreciated.
Regards,
Graeme
***********************************************
public class Main {
public static void main(String[] args) {
Integer[] v1 = new Integer[] { 1, 2, null, 3 };
Integer[] v2 = new Integer[] { 1, 2, 3, 4 };
int[] arr = Util.MergePurgeAndReverseSort(v1, v2, true);
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
}
}
***********************************************
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Util {
/*
* [x] Merge the two arrays
* [x] remove duplicates
* [x] remove NULL's
* [x] sort in reverse order
* [x] return as an int[] array
*/
public static int[] MergePurgeAndReverseSort(Integer[] values1,
Integer[] values2, boolean reverse) {
// merge arrays
Integer[] v1andv2 = new Integer[values1.length + values2.length];
System.arraycopy(values1, 0, v1andv2, 0, values1.length);
System.arraycopy(values2, 0, v1andv2, values1.length, values2.length);
// Use a set to remove duplicates
Set<Integer> intSet = new HashSet<>();
for (Integer item : v1andv2) {
// We could check for null's here too, or handle it separately as
shown below
if (item != null)
intSet.add(item);
}
// sort in reverse order
List<Integer> lst;
if (reverse)
lst =
intSet.stream().sorted(Collections.reverseOrder()).collect(Collectors.toList());
else
lst = intSet.stream().sorted().collect(Collectors.toList());
// unbox data
int[] n = lst.stream().mapToInt(Integer::intValue).toArray();
return n;
}
}
***********************************************
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar
Interview question - better solution for MergePurgeAndReverseOrder() Graeme Geldenhuys <graemeg@example.net> - 2019-03-29 15:01 +0000
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Sosman <esosman@comcast-dot-net.invalid> - 2019-03-29 11:19 -0400
Re: Interview question - better solution for MergePurgeAndReverseOrder() Graeme Geldenhuys <graemeg@example.net> - 2019-03-29 16:42 +0000
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Sosman <esosman@comcast-dot-net.invalid> - 2019-03-29 13:47 -0400
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Sosman <esosman@comcast-dot-net.invalid> - 2019-03-29 13:53 -0400
Re: Interview question - better solution for MergePurgeAndReverseOrder() Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2019-03-29 19:42 +0100
Re: Interview question - better solution for MergePurgeAndReverseOrder() Graeme Geldenhuys <graemeg@example.net> - 2019-03-29 16:53 +0000
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Douglas <e.d.programmer@gmail.com> - 2019-03-29 10:19 -0700
Re: Interview question - better solution for MergePurgeAndReverseOrder() Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2019-03-30 11:23 +0200
Re: Interview question - better solution for MergePurgeAndReverseOrder() Graeme Geldenhuys <graemeg@example.net> - 2019-03-30 11:16 +0000
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Douglas <e.d.programmer@gmail.com> - 2019-03-29 13:20 -0700
Re: Interview question - better solution for MergePurgeAndReverseOrder() Graeme Geldenhuys <graemeg@example.net> - 2019-03-30 11:21 +0000
Re: Interview question - better solution for MergePurgeAndReverseOrder() Eric Douglas <e.d.programmer@gmail.com> - 2019-04-01 04:56 -0700
Re: Interview question - better solution for MergePurgeAndReverseOrder() bursejan@gmail.com - 2019-03-29 15:40 -0700
csiph-web