@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('['); for (ListNode2<Bucket> bNode = bucketList.head(); bNode != null; bNode = bNode.getPrev()) { Bucket b = bNode.getValue(); sb.append('{'); sb.append(b.count); sb.append(":["); for (Counter<T> c : b.counterList) { sb.append('{'); sb.append(c.item); sb.append(':'); sb.append(c.error); sb.append("},"); } if (b.counterList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append("]},"); } if (bucketList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append(']'); return sb.toString(); }
@Test public void testEnqueue() { DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>(); list.enqueue(1); assertFalse(list.isEmpty()); assertEquals(1, list.size()); assertArrayEquals(new Integer[]{1}, list.toArray()); list.enqueue(2); assertFalse(list.isEmpty()); assertEquals(2, list.size()); assertArrayEquals(new Integer[]{2, 1}, list.toArray()); list.enqueue(3); assertFalse(list.isEmpty()); assertEquals(3, list.size()); assertArrayEquals(new Integer[]{3, 2, 1}, list.toArray()); assertEquals(new Integer(3), list.first()); assertEquals(new Integer(1), list.last()); }
@Test public void testAdd() { DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>(); list.add(1); assertFalse(list.isEmpty()); assertEquals(1, list.size()); assertArrayEquals(new Integer[]{1}, list.toArray()); list.add(2); assertFalse(list.isEmpty()); assertEquals(2, list.size()); assertArrayEquals(new Integer[]{1, 2}, list.toArray()); list.add(3); assertFalse(list.isEmpty()); assertEquals(3, list.size()); assertArrayEquals(new Integer[]{1, 2, 3}, list.toArray()); assertEquals(new Integer(1), list.first()); }
@Test public void testAddAfter() { DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>(); list.add(1); ListNode2<Integer> node2 = list.add(2); ListNode2<Integer> node4 = list.add(4); list.addAfter(node2, 3); assertEquals(4, list.size()); assertArrayEquals(new Integer[]{1, 2, 3, 4}, list.toArray()); ListNode2<Integer> node5 = list.addAfter(node4, 5); assertEquals(5, list.size()); assertArrayEquals(new Integer[]{1, 2, 3, 4, 5}, list.toArray()); assertEquals(new Integer(5), list.last()); assertEquals(node5, list.head()); }
@Test public void testAddNode() { DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>(); list.add(new ListNode2<Integer>(1)); assertFalse(list.isEmpty()); assertEquals(1, list.size()); assertArrayEquals(new Integer[]{1}, list.toArray()); list.add(new ListNode2<Integer>(2)); assertFalse(list.isEmpty()); assertEquals(2, list.size()); assertArrayEquals(new Integer[]{1, 2}, list.toArray()); list.add(new ListNode2<Integer>(3)); assertFalse(list.isEmpty()); assertEquals(3, list.size()); assertArrayEquals(new Integer[]{1, 2, 3}, list.toArray()); assertEquals(new Integer(1), list.first()); }
ListNode2<Integer> node2 = list.add(2); list.remove(node1); assertEquals(1, list.size()); assertEquals(new Integer(2), list.first()); assertEquals(node2, list.head()); node2 = list.add(2); list.remove(node2); assertEquals(1, list.size()); assertEquals(new Integer(1), list.first()); assertEquals(node1, list.head()); assertEquals(3, list.size()); assertArrayEquals(new Integer[]{1, 2, 3}, list.toArray()); list.remove(node2); assertEquals(2, list.size()); assertEquals(node1, list.tail()); assertEquals(new Integer(3), list.last());
private <T> void assertIsEmpty(DoublyLinkedList<T> list) { assertNull(list.tail()); assertNull(list.head()); assertNull(list.first()); assertNull(list.last()); assertTrue(list.isEmpty()); assertEquals(0, list.size()); for (T i : list) { fail("What is this: " + i + " ?"); } }
public void insertBefore(int pos, DoublyLinkedList l) { checkOutOfBounds(pos); Node ptr = start; if (pos == 1) { l.end.setLinkNext(start); start.setLinkPrev(l.end); start=l.start; size=size()+l.size(); } else { for (int i = 2; i <= size; i++) { if(i==pos){ Node tmp=ptr; ptr.setLinkPrev(l.end); l.end.setLinkNext(ptr.getLinkNext()); tmp.setLinkNext(l.start); l.start.setLinkPrev(tmp); size=size()+l.size(); break; } ptr=ptr.getLinkNext(); } } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('['); for (ListNode2<Bucket> bNode = bucketList.head(); bNode != null; bNode = bNode.getPrev()) { Bucket b = bNode.getValue(); sb.append('{'); sb.append(b.count); sb.append(":["); for (Counter<T> c : b.counterList) { sb.append('{'); sb.append(c.item); sb.append(':'); sb.append(c.error); sb.append("},"); } if (b.counterList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append("]},"); } if (bucketList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append(']'); return sb.toString(); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('['); for (ListNode2<Bucket> bNode = bucketList.head(); bNode != null; bNode = bNode.getPrev()) { Bucket b = bNode.getValue(); sb.append('{'); sb.append(b.count); sb.append(":["); for (Counter<T> c : b.counterList) { sb.append('{'); sb.append(c.item); sb.append(':'); sb.append(c.error); sb.append("},"); } if (b.counterList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append("]},"); } if (bucketList.size() > 0) { sb.deleteCharAt(sb.length() - 1); } sb.append(']'); return sb.toString(); }