All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.incava.ijdk.lang.IntegerArray Maven / Gradle / Ivy

There is a newer version: 3.9.0
Show newest version
package org.incava.ijdk.lang;

import java.util.Map;
import java.util.TreeMap;

/**
 * An array that allows insertion at any point, not within the set size. Similar to a SparseIntArray
 * in the Android SDK.
 */
public class IntegerArray {
    private TreeMap data;

    public IntegerArray() {
        data = new TreeMap();
    }

    public Integer get(Integer index) {
        return data.get(index);
    }

    public void set(Integer index, Integer value) {
        data.put(index, value);
    }

    public void remove(Integer index) {
        data.remove(index);
    }

    public int size() {
        return data.size() == 0 ? 0 : 1 + lastKey().intValue();
    }

    public Integer lastKey() {
        return lastIndex();
    }

    public Integer lastIndex() {
        return data.size() == 0 ? null : data.lastKey();
    }

    public Integer lastValue() {
        return get(lastKey());
    }

    public String toString() {
        return data.toString();
    }

    public void add(Integer value) {
        int last = size();
        set(last, value);
    }

    public Integer[] toArray() {
        Integer[] ary = new Integer[size()];
        for (Map.Entry entry : data.entrySet()) {
            ary[entry.getKey()] = entry.getValue();
        }
        return ary;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy