java如果我有1M到10M的标记,使用HashMap是错误的吗?
我为用infoWindows填充我的地图编写了以下代码,效果很好:
query.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshots)
{
Marker marker;
for (DataSnapshot dataSnapshot : dataSnapshots.getChildren())
{
Location location = dataSnapshot.getValue(Location.class);
IdLocation.put(location,dataSnapshot.getKey());
marker = mgoogleMap.addMarker(new MarkerOptions()
.position(new LatLng(location.getLatitude(), location.getLongitude())) .title(getString(R.string.tipologia))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_free)));
mapLocation.put(marker,location);
}
}
@Override
public void onCancelled(DatabaseError databaseError)
{
}
});
但我不知道它是否也适用于1M/10M标记(我的应用程序需要有很大的可扩展性)。在这种情况下,最好使用HashMap,或者我必须使用其他东西?问题还在于infoWindows不接受任何参数
谢谢!
# 1 楼答案
我建议你使用ConcurrentHashMap,如果你需要这种可扩展性,你可以看看这篇文章来获得更深入的答案:
Scalability issue with HashMap in Multithreaded Multicore system
ConcurrentHashMap in Java?