Airbnb Interview Question

Create iterate from list of list

Interview Answers

Anonymous

Apr 10, 2018

Create queue from array of size 5

Anonymous

Jun 1, 2018

public class LOLIterator { private static class ListOfListIterator implements Iterator { private final List> list; int r = 0; int c = 0; public ListOfListIterator(List> list) { this.list = list; } @Override public boolean hasNext() { boolean result = false; int cr = r, cc = c; if (r Iterator listIterator(List> list) { return new ListOfListIterator(list); } } Here is the test public class TestLOLIterator { @Test public void test1() { List> l = Arrays.asList( Arrays.asList(1, 2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8) ); Iterator iter = LOLIterator.listIterator(l); assertTrue(iter.hasNext()); assertEquals(iter.next().intValue(), 1); assertEquals(iter.next().intValue(), 2); assertEquals(iter.next().intValue(), 3); assertTrue(iter.hasNext()); assertTrue(iter.hasNext()); assertEquals(iter.next().intValue(), 4); assertEquals(iter.next().intValue(), 5); assertEquals(iter.next().intValue(), 6); assertEquals(iter.next().intValue(), 7); assertEquals(iter.next().intValue(), 8); assertFalse(iter.hasNext()); } @Test public void test2() { List> l = Arrays.asList( Arrays.asList(1, 2, 3), Arrays.asList(), Arrays.asList(4, 5, 6), Arrays.asList(7, 8) ); Iterator iter = LOLIterator.listIterator(l); assertTrue(iter.hasNext()); assertEquals(iter.next().intValue(), 1); assertEquals(iter.next().intValue(), 2); assertEquals(iter.next().intValue(), 3); assertTrue(iter.hasNext()); assertTrue(iter.hasNext()); assertEquals(iter.next().intValue(), 4); assertEquals(iter.next().intValue(), 5); assertEquals(iter.next().intValue(), 6); assertEquals(iter.next().intValue(), 7); assertEquals(iter.next().intValue(), 8); assertFalse(iter.hasNext()); } }