Android 的 SparseArray 鸿蒙有什么可以替换?
Android 的 SparseArray 鸿蒙有什么可以替换?
鸿蒙
安卓
HarmonyOS
赞
1
收藏 0
回答 2
待解决
相关问题
android.os.Message 鸿蒙有什么可以替换吗?
5427浏览 • 1回复 待解决
android 的 TransitionManager, 鸿蒙有可以替换的吗?
5620浏览 • 1回复 待解决
Android 里的 ArrayAdapter 鸿蒙用什么替换?
5211浏览 • 1回复 待解决
android 里的Typeface 鸿蒙有什么可以代替吗?
4888浏览 • 1回复 待解决
android 里的getScrollY鸿蒙里用什么替换?求助
6656浏览 • 1回复 待解决
Android 的 BroadcastReceiver ,鸿蒙有什么接口可以用吗?
5908浏览 • 1回复 待解决
鸿蒙与Android、iOS有什么区别?
12229浏览 • 5回复 已解决
android 里的 DialogFragment 鸿蒙用什么代替?或者有什么好主意提供么?
4522浏览 • 1回复 待解决
ceph和mysql有什么区别?或者说ceph替换mysql可以么?
3292浏览 • 1回复 待解决
Android 里的 BuildConfig 鸿蒙用什么代替?
6679浏览 • 2回复 待解决
computeScroll() 方法鸿蒙有什么可以替代
5584浏览 • 1回复 待解决
Android中的ArrayAdapter与鸿蒙中的什么对应
7554浏览 • 1回复 待解决
HarmonyOS 用什么api替换所有的需要替换的内容
375浏览 • 1回复 待解决
鸿蒙 有类似 [Android]使用Paint生成文字图片 吗?如详情中的Android示例
2267浏览 • 1回复 待解决
Android 里的重新onLayout 在鸿蒙用什么代替?
5596浏览 • 1回复 待解决
@Override public void computeScroll() 方法鸿蒙有什么可以替代?
5289浏览 • 1回复 待解决
ViewConfiguration.get(getContext()).getScaledTouchSlop() 鸿蒙有什么可以代替?
6443浏览 • 1回复 待解决
有什么方法可以在web端唤起鸿蒙应用。
6389浏览 • 2回复 待解决
鸿蒙有vpn开发的接口吗?类似Android的vpn service
6684浏览 • 1回复 待解决
请问鸿蒙有类似android 的手机旋转接口OrientationEventListener吗?
5868浏览 • 1回复 待解决
鸿蒙怎么打开网页,Android可以正常打开
12807浏览 • 3回复 待解决
鸿蒙的分享功能中,分享的接收方有什么接口可以响应的?
3981浏览 • 1回复 待解决
鸿蒙是基于Android的吗?
11701浏览 • 2回复 已解决
鸿蒙中TextField有类似Android中editText控件的getSelectionStart方法吗
7065浏览 • 2回复 待解决
harmony有类似Android的application的概念吗?
2430浏览 • 2回复 待解决
在Android中,替代HashMap有如下方案:
所以,你的问题的答案是ohos.utils.PlainArray
深入理解,大家可以参考:深度解读ArrayMap优势与缺陷
可以自己实现一个
public class SparseRawArray<K extends Number, E> {
private final LinkedHashMap<K, E> mMap;
private Iterator<K> mIterator;
private int mIndex;
private boolean mIndexDirty;
private K mCurrentKey;
public SparseRawArray() {
mMap = new LinkedHashMap<>();
resetIndex();
}
public E get(K key) {
return get(key, null);
}
public E get(K key, E valueIfKeyNotFound) {
E value = mMap.get(key);
return value != null ? value : valueIfKeyNotFound;
}
public void delete(K key) {
mMap.remove(key);
mIndexDirty = true;
}
public void remove(K key) {
delete(key);
}
public void put(K key, E value) {
mMap.put(key, value);
mIndexDirty = true;
}
public int size() {
return mMap.size();
}
public K keyAt(int index, K keyIfIndexNotExist) {
if (mIndex == index && !mIndexDirty) {
return mCurrentKey;
}
if (mIndexDirty || mIndex > index) {
resetIndex();
}
while (mIterator.hasNext()) {
if (++mIndex == index) {
mCurrentKey = mIterator.next();
return mCurrentKey;
}
}
mIndexDirty = true;
return keyIfIndexNotExist;
}
public void clear() {
mMap.clear();
mIndexDirty = true;
}
private void resetIndex() {
mIndex = -1;
mIterator = mMap.keySet().iterator();
mCurrentKey = null;
mIndexDirty = false;
}
}
public class SparseArray<E> extends SparseRawArray<Integer, E> {
public int keyAt(int index) {
return keyAt(index, -1);
}
}