package com.lody.virtual.server.am; import com.lody.virtual.helper.collection.ArrayMap; import com.lody.virtual.helper.collection.SparseArray; class ProcessMap<E> { private final ArrayMap<String, SparseArray<E>> mMap = new ArrayMap<>(); public E get(String name, int uid) { SparseArray<E> uids = mMap.get(name); if (uids == null) return null; return uids.get(uid); } public E put(String name, int uid, E value) { SparseArray<E> uids = mMap.get(name); if (uids == null) { uids = new SparseArray<E>(2); mMap.put(name, uids); } uids.put(uid, value); return value; } public E remove(String name, int uid) { SparseArray<E> uids = mMap.get(name); if (uids != null) { final E old = uids.removeReturnOld(uid); if (uids.size() == 0) { mMap.remove(name); } return old; } return null; } public ArrayMap<String, SparseArray<E>> getMap() { return mMap; } }