• Android 开发性能优化之SparseArray(三)


      SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch

        private static int binarySearch(int[] a, int start, int len, int key) {
            int high = start + len, low = start - 1, guess;
            while (high - low > 1) {
                guess = (high + low) / 2;
                if (a[guess] < key)
                    low = guess;
                else
                    high = guess;
            }
            if (high == start + len)
                return ~(start + len);
            else if (a[high] == key)
                return high;
            else
                return ~high;
        }

    所以,它存储的数值都是按键值从小到大的顺序排列好的。

    包含的方法,

    添加数据

    public void put(int key, E value) {}
    public void append(int key, E value){}

    删除操作:

    public void delete(int key) {}
    public void remove(int key) {} 
    public void removeAt(int index){}
    public void clear(){}

    修改数据:

    public void put(int key, E value)
    public void setValueAt(int index, E value)

    查找数据:

    public E get(int key)
    public E get(int key, E valueIfKeyNotFound)

    相应的也有SparseBooleanArray,用来取代HashMap<Integer, Boolean>,SparseIntArray用来取代HashMap<Integer, Integer>,大家有兴趣的可以研究。

    SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的类,目的是提高效率,其核心是折半查找函数(binarySearch)。在Android中,当我们需要定义时,我们可以使用如下的方式来取得更好的性能。

    HashMap<Integer, E> hashMap = new HashMap<Integer, E>();
    SparseArray<E> sparseArray = new SparseArray<E>();

    本文转载自:http://blog.csdn.net/xiangzilv1987/article/details/8209903

  • 相关阅读:
    计算机中的进制和编码
    操作系统简史
    电脑结构和CPU、内存、硬盘三者之间的关系
    电脑简史
    使用开源my-deploy工具实现开发环境的代码自动化部署
    使用Let’s Encrypt创建nginx免费SSL证书
    VM ESXI 服务器虚拟化资料积累
    python mysql连接函数
    python日期格式转换小记
    Python模块学习
  • 原文地址:https://www.cnblogs.com/sishuiliuyun/p/3559751.html
Copyright © 2020-2023  润新知