GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Java/DataStructures/Bags/Bag.java at master · FRANDAVID/Java Expand file tree/ Copy pathBag.javaMore file actions 126 lines (106 loc) · 3.08 KB / Copy pathBag.javaFile metadata and controls126 lines (106 loc) · 3.08 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 package DataStructures.Bags; import java.util.Iterator; import java.util.NoSuchElementException; /** * Collection which does not allow removing elements (only collect and iterate) * * @param <Element> - the generic type of an element in this bag */ public class Bag<Element> implements Iterable<Element> { private Node<Element> firstElement; // first element of the bag private int size; // size of bag private static class Node<Element> { private Element content; private Node<Element> nextElement; } /** * Create an empty bag */ public Bag() { firstElement = null; size = 0; } /** * @return true if this bag is empty, false otherwise */ public boolean isEmpty() { return firstElement == null; } /** * @return the number of elements */ public int size() { return size; } /** * @param element - the element to add */ public void add(Element element) { Node<Element> oldfirst = firstElement; firstElement = new Node<>(); firstElement.content = element; firstElement.nextElement = oldfirst; size++; } /** * Checks if the bag contains a specific element * * @param element which you want to look for * @return true if bag contains element, otherwise false */ public boolean contains(Element element) { Iterator<Element> iterator = this.iterator(); while (iterator.hasNext()) { if (iterator.next().equals(element)) { return true; } } return false; } /** * @return an iterator that iterates over the elements in this bag in arbitrary order */ public Iterator<Element> iterator() { return new ListIterator<>(firstElement); } @SuppressWarnings("hiding") private class ListIterator<Element> implements Iterator<Element> { private Node<Element> currentElement; public ListIterator(Node<Element> firstElement) { currentElement = firstElement; } public boolean hasNext() { return currentElement != null; } /** * remove is not allowed in a bag */ @Override public void remove() { throw new UnsupportedOperationException(); } public Element next() { if (!hasNext()) throw new NoSuchElementException(); Element element = currentElement.content; currentElement = currentElement.nextElement; return element; } } /** * main-method for testing */ public static void main(String[] args) { Bag<String> bag = new Bag<>(); bag.add("1"); bag.add("1"); bag.add("2"); System.out.println("size of bag = " + bag.size()); for (String s : bag) { System.out.println(s); } System.out.println(bag.contains(null)); System.out.println(bag.contains("1")); System.out.println(bag.contains("3")); } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |