ArraySet.java Source code

Java tutorial

Introduction

Here is the source code for ArraySet.java

Source

import java.io.Serializable;
import java.util.*;

public class ArraySet extends AbstractSet implements Cloneable, Serializable {

    private ArrayList list;

    public ArraySet() {
        list = new ArrayList();
    }

    public ArraySet(Collection col) {
        list = new ArrayList();

        // No need to check for dups if col is a set
        Iterator itor = col.iterator();
        if (col instanceof Set) {
            while (itor.hasNext()) {
                list.add(itor.next());
            }
        } else {
            while (itor.hasNext()) {
                add(itor.next());
            }
        }
    }

    public Iterator iterator() {
        return list.iterator();
    }

    public int size() {
        return list.size();
    }

    public boolean add(Object element) {
        boolean modified;
        if (modified = !list.contains(element)) {
            list.add(element);
        }
        return modified;
    }

    public boolean remove(Object element) {
        return list.remove(element);
    }

    public boolean isEmpty() {
        return list.isEmpty();
    }

    public boolean contains(Object element) {
        return list.contains(element);
    }

    public void clear() {
        list.clear();
    }

    public Object clone() {
        try {
            ArraySet newSet = (ArraySet) super.clone();
            newSet.list = (ArrayList) list.clone();
            return newSet;
        } catch (CloneNotSupportedException e) {
            throw new InternalError();
        }
    }
}