📄 arrayset.java
字号:
/**
*
*
*
*/
package dreamer.util;
public class ArraySet<T> implements Set<T>
{
private static final int INIT_SIZE = 1024;
private static final int INCREMENT = 256;
private Object [] set;
private int size;
private int len;
public ArraySet()
{
set = new Object[INIT_SIZE];
size = INIT_SIZE;
len = 0;
}
private void extend()
{
Object [] tmpSet = new Object[size+INCREMENT];
for(int i=0;i<len;i++)
{
tmpSet[i] = set[i];
}
set = tmpSet;
}
public boolean add(T elem)
{
if(len>=size)
extend();
if(contains(elem))
return false;
set[len] = elem;
len++;
return true;
}
public boolean remove(T elem)throws IndexSlopOverException
{
if(len==0)
throw new IndexSlopOverException();
for(int i=0;i<len;i++)
{
if(set[i].equals(elem))
{
for(int j=i+1;j<len;j++)
{
set[j-1] = set[j];
}
len--;
return true;
}
}
return true;
}
public boolean set(T elem,T value)
{
if(contains(value))
return false;
for(int i=0;i<len;i++)
{
if(set[i].equals(elem))
{
set[i] = value;
return true;
}
}
return false;
}
public boolean contains(T elem)
{
for(int i=0;i<len;i++)
{
if(set[i].equals(elem))
return true;
}
return false;
}
public int size()
{
return len;
}
public Object [] toArray()
{
if(len==0)
return null;
Object [] array = new Object[len];
for(int i=0;i<len;i++)
{
array[i] = set[i];
}
return array;
}
public boolean isEmpty()
{
if(len==0)
return true;
return false;
}
public void clear()
{
set = new Object[INIT_SIZE];
size = INIT_SIZE;
len = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -