l2 = Arrays.asList(new String[]{"3","4"}); ms = new MultiSet<>(l1, l2); i = ms.iterator(); assertTrue(i.hasNext()); assertEquals("1", i.next()); l2 = Arrays.asList(new String[]{}); ms = new MultiSet<>(l1, l2); i = ms.iterator(); assertTrue(i.hasNext()); assertEquals("1", i.next()); l2 = Arrays.asList(new String[]{"3","4"}); ms = new MultiSet<>(l1, l2); i = ms.iterator(); assertTrue(i.hasNext()); assertEquals("3", i.next()); l2 = Arrays.asList(new String[]{}); ms = new MultiSet<>(l1, l2); i = ms.iterator(); assertFalse(i.hasNext()); try { i = ms.iterator(); assertTrue(i.hasNext()); assertEquals("1", i.next()); Iterator<String> t = ms.iterator();