
link.jfire.baseutil.collection.ObjectCollect Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jfire-baseutil Show documentation
Show all versions of jfire-baseutil Show documentation
jfire-baseutil is common jar dependency of jfire J2EE package
The newest version!
package link.jfire.baseutil.collection;
import java.util.Collection;
/**
* 对象实例收集器,具备自动的容量扩展功能。
* 不存放相同对象(内存地址相同,同一对象的相同内容的不同实例被认为是不同对象)
*
* @author linbin
*
*/
public class ObjectCollect
{
private Object[] array;
private int size;
private int count = 0;
/**
* 以size大小初始化收集器
*
* @param size
*/
public ObjectCollect(int size)
{
this.size = size;
array = new Object[size];
count = 0;
}
/**
* 默认构造方法,初始容量为50
*/
public ObjectCollect()
{
this(50);
}
/**
* 向对象收集器中添加对象实例,如果该实例已经添加过,则返回false,否则返回真 该添加对比只进行对象实例内存地址判断,而不进行相等性判断
*
* @param value
* @return
*/
public boolean add(Object value)
{
if (indexOf(value) == -1)
{
ensureCapacity(1);
array[count] = value;
count++;
return true;
}
return false;
}
/**
* 从集合中删除该元素
*
* @param value
*/
public void remove(Object value)
{
for (int i = 0; i < count; i++)
{
if (array[i] == value)
{
// 如果删除该元素,则该位置以末尾元素填充。这样避免整个数组移动
count--;
array[i] = array[count];
break;
}
}
}
/**
* 向对象收集器内添加对象,而不进行容量检查。
* 加入的时候会检查该对象是否已经在收集器内。如果在的话,则不加入,并且返回false
* 成功则返回true
*
* @param value
* @return
*/
public boolean addWithoutEnsureCapacity(Object value)
{
if (indexOf(value) == -1)
{
array[count] = value;
count++;
return true;
}
return false;
}
/**
* 将参数集合内的对象添加到对象收集器中
*
* @param collection
*/
public void addAll(Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy