OnJava8-Examples/lowlevel/CircularSet.java
2017-01-15 16:00:44 -08:00

30 lines
824 B
Java

// lowlevel/CircularSet.java
// (c)2017 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// Reuses storage so we don't run out of memory
import java.util.*;
public class CircularSet {
private int[] array;
private int size;
private int index = 0;
public CircularSet(int size) {
this.size = size;
array = new int[size];
// Initialize to a value not produced
// by SerialNumbers:
Arrays.fill(array, -1);
}
public synchronized void add(int i) {
array[index] = i;
// Wrap index and write over old elements:
index = ++index % size;
}
public synchronized boolean contains(int val) {
for(int i = 0; i < size; i++)
if(array[i] == val) return true;
return false;
}
}