jjzjj

SparseArray

全部标签

android - SparseArray 和 Hashmap 的区别?

我想知道SparseArray和HashMap之间的性能和效率,以及哪个更好用。我无法理解何时使用SparseArray以及何时使用Hashmap 最佳答案 SparseArray是当您的映射键是一个整数时您应该做出的选择,并且这些整数不是连续的,这意味着不是0、1、2、3、4、...n-但是更像是43、2045、12、5。现在,让我们暂时假设您的键是整数,但也是连续的(0、1、2、3、4、...n)。在这种情况下,最好的收藏选择是什么?好吧,让我们假设您的值是Strings。在这种情况下,最好的选择是String数组(String

Android SparseArray<SparseArray<Object>> 初始化

我必须使用两个键和一个值来实现类似于Hashmap的分类,比方说Hashmap,其中两个键是整数,值是我定义的通用MyObject。我读了this,this,和this发布,我也知道Guava项目提供thetableinterface,但我不想使用外部库(如果不是绝对必要的话)来使我的项目尽可能小。所以我决定使用SparseArrays:我认为这是更好的选择,因为我的键是int并且不一定从零开始递增。我做这个初始化:SparseArray>myObjectSparseArray=newSparseArray>();现在进入正题。我可以做这种操作吗:MyObjectmyObject=ne

android - 空指针异常 : Attempt to invoke virtual method 'java.lang.Object android.util.SparseArray.get(int)' on a null object reference

我在我的项目中使用了这个android支持库版本25.0.1我有时在某些设备上遇到错误在日志中://logcatjava.lang.RuntimeException:UnabletostartactivityComponentInfo{com.bookmark.money/com.zoostudio.moneylover.ui.ActivityBase}:java.lang.NullPointerException:Attempttoinvokevirtualmethod'java.lang.Objectandroid.util.SparseArray.get(int)'onanull

android - 在 Android 中对 SparseArray 进行排序

如何对android.util.SparseArray进行排序?例如。我有SparseArray:1-2.335-1.5结果:5-1.51-2.33谢谢!!!--已编辑我用过map。感谢您的帮助。 最佳答案 不清楚您是否请求了键或值排序顺序......所以只是一个注释:二进制搜索仅适用于排序数据,SparseArray根据thesource使用二进制搜索对其排序(!)键数组。.所以键已经排序并且不会接受与值的顺序不同的顺序。 关于android-在Android中对SparseArray

java - 如何初始化静态 SparseArray

如何初始化一个static,android.util.SparseArray的不可修改的实例?? 最佳答案 这是使用匿名类的更好方法:staticfinalSparseIntArraymyArray=newSparseIntArray(){{append(1,2);append(10,20);}}; 关于java-如何初始化静态SparseArray,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

android - 使用 GSON 序列化 SparseArray<T>

我想序列化一个自定义Java对象,所以我可以使用SharedPreferences存储它并在另一个Activity中检索它。我不需要持久存储,SharedPreferences,我在关闭应用程序时删除它们。我目前为此使用GSON,但它似乎不适用于Android的SparseArray类型。我的对象:publicclassPartProfile{privateintgameId;//SomemoreprimitivesprivateSparseArrayinstalledParts=newSparseArray();//...}publicclassPart{privateStringp

android - SparseArray 的 put(...) 和 append(...) 之间的区别?

我只想知道SparseArray的put(...)和append(...)有什么区别?来自官方文档:append(...):将键/值对放入数组,针对键大于数组中所有现有键的情况进行优化。put(...):添加从指定键到指定值的映射,如果有的话,替换从指定键的先前映射。但我就是不明白:s感谢您的帮助! 最佳答案 在我看来,文档非常简单:如果您添加顺序键,例如1、2、3、5、7、11、13...,请使用append()。如果您添加非顺序键,例如100、23、45、277、42...,请使用put()。在任何一种情况下都没有理由不能使用p

带有字符串键的Android SparseArray?

我需要使用散列图在我的Android应用程序中存储键/值(可能有数千个),但我知道我应该使用SparseArray以节省内存。但是,我的key必须是一个字符串。有没有办法创建SparseArray或其他替代方案的自定义实现? 最佳答案 SparseArray仅在整数为键时才有效。这是一种内存优化,只有整数值才有可能,因为您需要对键进行二进制搜索。对字符串进行二进制搜索很昂贵且定义不明确(“1”应该小于还是大于“a”或“疯狂的日文字符”?),因此他们不这样做。顺便说一句,SparseArray节省内存但可能需要更多时间。HashMap

android - 当我在 android 中使用 HashMap 时显示警告(使用新的 SparseArray<String>)

我是android开发的新手。在我的android应用程序中,我正在使用HashMap,但我收到警告:**"UsenewSparseArray(...)insteadforbetterperformance"**这是什么意思,如何使用SparseArray代替? 最佳答案 UsenewSparseArray(...)insteadforbetterperformance您收到此警告的原因已描述为here.SparseArraysmapintegerstoObjects.UnlikeanormalarrayofObjects,ther

android - 当我在 android 中使用 HashMap 时显示警告(使用新的 SparseArray<String>)

我是android开发的新手。在我的android应用程序中,我正在使用HashMap,但我收到警告:**"UsenewSparseArray(...)insteadforbetterperformance"**这是什么意思,如何使用SparseArray代替? 最佳答案 UsenewSparseArray(...)insteadforbetterperformance您收到此警告的原因已描述为here.SparseArraysmapintegerstoObjects.UnlikeanormalarrayofObjects,ther