133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi/*
233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * Copyright (C) 2013 The Android Open Source Project
333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi *
433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License");
533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * you may not use this file except in compliance with the License.
633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * You may obtain a copy of the License at
733fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi *
833fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi *      http://www.apache.org/licenses/LICENSE-2.0
933fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi *
1033fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software
1133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS,
1233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * See the License for the specific language governing permissions and
1433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi * limitations under the License.
1533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi */
1633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
1733fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagipackage android.util;
1833fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
1933fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagipublic class SparseIntArray {
2033fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    private final SparseArray<Integer> mArray;
2133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
2233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public SparseIntArray() {
2333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        this(10);
2433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
2533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
2633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public SparseIntArray(final int initialCapacity) {
27a91561aa58db1c43092c1caecc051a11fa5391c7Tadashi G. Takaoka        mArray = new SparseArray<>(initialCapacity);
2833fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
2933fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
3033fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public int size() {
3133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        return mArray.size();
3233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
3333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
3433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public void clear() {
3533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        mArray.clear();
3633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
3733fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
3833fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public void put(final int key, final int value) {
3933fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        mArray.put(key, value);
4033fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
4133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
4233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public int get(final int key) {
4333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        return get(key, 0);
4433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
4533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
4633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public int get(final int key, final int valueIfKeyNotFound) {
4733fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        return mArray.get(key, valueIfKeyNotFound);
4833fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
4933fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
5033fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public int indexOfKey(final int key) {
5133fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        return mArray.indexOfKey(key);
5233fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
5333fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi
5433fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    public int keyAt(final int index) {
5533fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi        return mArray.keyAt(index);
5633fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi    }
5733fd13bf3cc241019d02ff52667dafc68977c05cKeisuke Kuroyanagi}
58