Android 的 SparseArray 鸿蒙有什么可以替换?
Android 的 SparseArray 鸿蒙有什么可以替换?
鸿蒙
安卓
HarmonyOS
赞
1
收藏 0
回答 2
待解决
相关问题
android.os.Message 鸿蒙有什么可以替换吗?
1220浏览 • 1回复 待解决
android 的 TransitionManager, 鸿蒙有可以替换的吗?
1867浏览 • 1回复 待解决
Android 里的 ArrayAdapter 鸿蒙用什么替换?
1216浏览 • 1回复 待解决
android 里的Typeface 鸿蒙有什么可以代替吗?
1132浏览 • 1回复 待解决
Android 的 BroadcastReceiver ,鸿蒙有什么接口可以用吗?
1542浏览 • 1回复 待解决
android 里的getScrollY鸿蒙里用什么替换?求助
2540浏览 • 1回复 待解决
鸿蒙与Android、iOS有什么区别?
6613浏览 • 5回复 已解决
android 里的 DialogFragment 鸿蒙用什么代替?或者有什么好主意提供么?
1045浏览 • 1回复 待解决
computeScroll() 方法鸿蒙有什么可以替代
1618浏览 • 1回复 待解决
鸿蒙的分享功能中,分享的接收方有什么接口可以响应的?
375浏览 • 1回复 待解决
@Override public void computeScroll() 方法鸿蒙有什么可以替代?
1642浏览 • 1回复 待解决
有什么方法可以在web端唤起鸿蒙应用。
2068浏览 • 2回复 待解决
ViewConfiguration.get(getContext()).getScaledTouchSlop() 鸿蒙有什么可以代替?
2324浏览 • 1回复 待解决
Android 里的 BuildConfig 鸿蒙用什么代替?
1395浏览 • 2回复 待解决
请问鸿蒙有类似android 的手机旋转接口OrientationEventListener吗?
1876浏览 • 1回复 待解决
Android中的ArrayAdapter与鸿蒙中的什么对应
4016浏览 • 1回复 待解决
player有什么方法可以设置播放速度吗?
1633浏览 • 1回复 待解决
Android 里的重新onLayout 在鸿蒙用什么代替?
1428浏览 • 1回复 待解决
HarmonyOS有没类似Android里面的Fragment
8556浏览 • 4回复 待解决
鸿蒙中TextField有类似Android中editText控件的getSelectionStart方法吗
2606浏览 • 2回复 待解决
Harmony中是否有类似android的Instrumentation类实现模拟点击的效果?
1573浏览 • 1回复 待解决
鸿蒙怎么打开网页,Android可以正常打开
5387浏览 • 3回复 待解决
安卓中的FrameLayout.onLayout在鸿蒙中的替换方法
3036浏览 • 2回复 待解决
ets 不支持adapter用法,是否有对应替换方案?
1011浏览 • 1回复 待解决
Harmonyos 鸿蒙的IDE里有JetBrains,什么情况
10265浏览 • 5回复 已解决
在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);
}
}