首页 | 网站地图 | RSS订阅 | 高级搜索 | 收藏本站
默认搜索       热门关键字: lucene  nutch  eee  sdD  dad
Google广告位置
Google AD
当前位置:搜索引擎>Java> 正文

  • 长整型数据集合工具LongList
  • 日期:2007-12-02   点击:   作者:   来源:   字体:[ ]
package com.chinajavaworld.util;
 
import java.io.Serializable;
 
public final class LongList
    implements Serializable
{
 
    long elements[];
    int capacity;
    int size;
 
    public LongList()
    {
        this(50);
    }
 
    public LongList(int initialCapacity)
    {
        size = 0;
        capacity = initialCapacity;
        elements = new long[capacity];
    }
 
    public LongList(long longArray[])
    {
        size = longArray.length;
        capacity = longArray.length + 3;
        elements = new long[capacity];
        System.arraycopy(longArray, 0, elements, 0, size);
    }
 
    public void add(long value)
    {
        elements[size] = value;
        size++;
        if(size == capacity)
        {
            capacity = capacity * 2;
            long newElements[] = new long[capacity];
            for(int i = 0; i < size; i++)
                newElements[i] = elements[i];
 
            elements = newElements;
        }
    }
 
    public void add(int index, long value)
    {
        if(index < 0 || index > size)
            throw new IndexOutOfBoundsException("Index " + index + " not valid.");
        for(int i = size; i > index; i--)
            elements[i] = elements[i - 1];
 
        elements[index] = value;
        size++;
        if(size == capacity)
        {
            capacity = capacity * 2;
            long newElements[] = new long[capacity];
            for(int i = 0; i < size; i++)
                newElements[i] = elements[i];
 
            elements = newElements;
        }
    }
 
    public void remove(int index)
    {
        if(index < 0 || index >= size)
            throw new IndexOutOfBoundsException("Index " + index + " not valid.");
        size--;
        for(int i = index; i < size; i++)
            elements[i] = elements[i + 1];
 
    }
 
    public void clear()
    {
        size = 0;
    }
 
    public long get(int index)
    {
        if(index < 0 || index >= size)
            throw new IndexOutOfBoundsException("Index " + index + " not valid.");
        else
            return elements[index];
    }
 
    public int indexOf(long value)
    {
        for(int i = 0; i < size; i++)
            if(elements[i] == value)
                return i;
 
        return -1;
    }
 
    public boolean contains(long value)
    {
        return indexOf(value) != -1;
    }
 
    public int size()
    {
        return size;
    }
 
    public long[] toArray()
    {
        int size = this.size;
        long newElements[] = new long[size];
        for(int i = 0; i < size; i++)
            newElements[i] = elements[i];
 
        return newElements;
    }
 
    public String toString()
    {
        StringBuffer buf = new StringBuffer();
        for(int i = 0; i < size; i++)
            buf.append(elements[i]).append(" ");
 
        return buf.toString();
    }
}
 


使用方法:
1.新建
LongList l = new LongList();


LongList l = new LongList(20);

2.是否含有某个整数
LongList l = new LongList(20);
l.add(100);
if(l.contains(100))
{
...
}

3.转成数组
LongList l = new LongList(20);
l.add(100);
...
//转成数组
long[] arrayLong = l.toArray();

4.可简单修改成IntList

所有评论 关闭窗口↓ 打印本页 论坛讨论 返回列表
用户名: 新注册) 密码: 匿名评论 [所有评论]

评论内容:(不能超过250字,请自觉遵守互联网相关政策法规。

最新评论: