Tag: 地图

使用HashMap和自定义键

快速问题:如果我想使用自定义类作为键的HashMap ,我必须覆盖hashCode函数吗? 如果我不覆盖该function,它将如何工作?

将Java对象转换为Java Map

我正在使用org.eclipse.jetty.util.ajax.JSON来解析JSON文本。 但是JSON.parse(string)方法产生一个Object,我需要它作为Map。 在内部,它是完全提到的类的对象。 但是,如何在不构建新对象或获取未经检查的强制转换警告的情况下将对象转换为映射? 目前,我发现只有一个解决方案没有未经检查的强制转换警告,但是构建了一个新的Map,实际上当然不是一个强制转换。 private Map getMap(String string) { HashMap result = new HashMap(); Object object = JSON.parse(string); if (object instanceof Map) { Map map = (Map)(object); for (Map.Entry entry : map.entrySet()) { String key = entry.getKey().toString(); Object value = entry.getValue(); result.put(key,value); } } return result; } 那么是否有一种方法可以在没有未经检查的投射警告的情况下正确施放它?

用Gson解析JSON地图/词典?

我需要解析一个看起来像这样的JSON响应: {“key1”: “value1”, “key2”: “value2”, “key3”: {“childKey1”: “childValue1”, “childKey2”: “childValue2”, “childKey3”: “childValue3” } } class Egg { @SerializedName(“key1”) private String mKey1; @SerializedName(“key2”) private String mKey2; @SerializedName(“key3”) // ??? } 我正在阅读Gson文档,但无法弄清楚如何正确地将字典反序列化为Map。

Java – 将LinkedHashMap键/值放入各自列表的简单方法?

我有一个LinkedHashMap map 。 List keyList; List valueList; map.keySet(); map.values(); 有没有一种简单的方法可以从map.valSet()中填充keyList,从map.values()中填充valueList,还是必须迭代?

如何在java GUI中添加地图(比如GM#的GM#)?

C#有一个很好的库/ api用于创建/使用在Gmap.net上找到winforms的地图java有这样的库吗? 我发现的最接近的事情是worldwind,但这看起来并不像GMap.net在winforms中做的那么好

导入com.google.android.maps.geopoint无法解析

我有Java GoogleMAP项目。这不是android项目。 我之前使用KML完成了这个项目。 现在谷歌已经改为JSON / XML。 我需要在数据库-postgresql中的2个位置保存坐标。 然后我会在MAP中绘制路径。 现在问题是: GeoPoint cannot be resolved to a type 。 我这样导入也import com.google.maps.GeoPoint; 。 这也显示为红色标记。 请让我知道什么是问题或问题? 我谷歌吧。 没运气。 所有提到有关Android谷歌api设置。 不是android项目…… 请帮我.. 提前致谢。

有效地“修改”ImmutableMap

我们目前正在使用Guava作为其不可变的集合,但我惊讶地发现他们的地图没有方法可以轻松创建新的地图,只需稍作修改。 最重要的是,他们的构建器不允许为键分配新值或删除键。 因此,如果我只想修改一个值,这就是我希望能够做到的: ImmutableMap<Guid, ImmutableMap> originalMap = /* get the map */; ImmutableMap<Guid, ImmutableMap> modifiedMap = originalMap.cloneAndPut(key, value); 这就是Guava期待我做的事情: ImmutableMap<Guid, ImmutableMap> originalMap = /* get the map */; Map<Guid, ImmutableMap> mutableCopy = new LinkedHashMap(originalMap); mutableCopy.put(key, value); originalMap = ImmutableMap.copyOf(mutableCopy); /* put the map back */ 通过这样做,我得到了我想要的修改的地图的新副本。 原始副本不受影响,我将使用primefaces引用将事物放回去,因此整个设置是线程安全的。 它只是很慢。 这里有很多浪费的复制品。 假设地图中有1,024个桶。 当你可以按原样使用那些不可变的桶并且只克隆其中一个时,那就是你不必要地再次创建的1,023个桶(也是每个两次)。 所以我想: 是否有一种Guava实用方法埋藏在某处? (它不在地图或ImmutableMap.Builder中。) 有没有其他Java库可以做到这一点? […]

什么时候在java中使用Long vs long?

以下是我的界面 – public interface IDBClient { public String read(ClientInput input); } 这是我实现的界面 – public class DatabaseClient implements IDBClient { @Override public String read(ClientInput input) { } } 现在我有一个像这样获取DatabaseClient实例的工厂 – IDBClient client = DatabaseClientFactory.getInstance(); …. 现在我需要调用我的DatabaseClient read方法,该方法接受ClientInput参数,下面是相同的类。 这堂课不是我写的,所以这就是我对此有疑问的原因,我非常确定这是错误的做法。 public final class ClientInput { private Long userid; private Long clientid; private Long timeout_ms = 20L; private boolean […]

将动态属性映射读入Spring托管bean

我有这样的属性文件: my.properties file: app.One.id=1 app.One.val=60 app.Two.id=5 app.Two.val=75 我在Spring配置文件中将这些值读入我的bean中的map属性,如下所示: spring-config.xml: 这样,如果我向属性文件添加一个新的id / val,我必须在config xml中添加一行,以便在myMap中拥有新的id / val。 我的问题是,有没有办法在spring配置文件中指定key-val对,以便xml中定义的key-val数量可以计算出属性文件中的项目并创建一个map。 基本上我想在不同的环境中使用这个xml文件,我们在属性文件中使用不同数量的键值项。 我只是不想在每个环境中更改xml文件以读取所有这些值。 如果您需要任何其他细节,请告诉我。 任何想法/意见表示赞赏。 谢谢!

遍历HashMap时,我得到NullPointerException

这是我的代码: HashMap<String, HashSet> map; ….// I didn’t write those code that initial the map. System.out.println(map.entrySet().size()); // run util here is ok, I get the size of the map. for(Map.Entry<String, HashSet> entry : map.entrySet()) {// here throw the exception Sytem.out.println(“abc”);// didn’t executed, throw exception before } 我得到了例外: key.test.EnwikiOutlink.main(EnwikiOutlink.java:68)中线程“main”java.lang.NullPointerException中的exception map对象有超过10,000个map对象,我在服务器机器上运行它无法调试。 但是当我减小这个地图的大小(低于10,000)时,程序运行正常。 问题的原因和解决方案是什么? 谢谢!