X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FFastSet.java;h=e7ae0637ff28cb2393d45bf10adfd18c56331b39;hb=f09d2abb95f106197aea99c345282c3bf0cd3717;hp=d3be774581522f3033559a07e73b90a386cbdd5a;hpb=72cc02d0f08922a98b9f2139e814b6c33b275a43;p=sbp.git diff --git a/src/edu/berkeley/sbp/util/FastSet.java b/src/edu/berkeley/sbp/util/FastSet.java index d3be774..e7ae063 100644 --- a/src/edu/berkeley/sbp/util/FastSet.java +++ b/src/edu/berkeley/sbp/util/FastSet.java @@ -1,11 +1,11 @@ package edu.berkeley.sbp.util; import java.util.*; -public /*final*/ class FastSet implements Iterator, Iterable { +public /*final*/ class FastSet implements Iterator, Iterable, Visitable { - public static final int INITIAL_SIZE = 128; + public static final int INITIAL_SIZE = 8; - private Object[] array; + private Object[] array = null; private T only = null; private int i = -1; private int size = 0; @@ -28,6 +28,12 @@ public /*final*/ class FastSet implements Iterator, Iterable { for(T t : s) array[size++] = t; } + public void visit(Invokable ivbc, B b, C c) { + if (only!=null) ivbc.invoke(only, b, c); + else for(int j=0; j implements Iterator, Iterable { } } public void add(T t, boolean check) { - if (check) for(Object o : this) if (o.equals(t)) return; + //if (check) for(Object o : this) if (o.equals(t)) return; + if (check) { + if (only==t) return; + if (array != null) + for(int i=0; i