Tag: 映射

在java中使用多种类型的值进行映射

我必须完成一个奇怪的特殊场景。 其描述如下: 我必须设计一个Map,其中’ Keys ‘总是String类型。 但是,其中一个键的’ Value ‘可能是String或List (取决于特定键可以具有的值的数量。如果该特定键只有一个值,则’Value’将是一个String,并且它必须如果密钥包含许多值,则为List。 如何完成这种情况? 例如:地图中有2个键,即“姓名”和“电话号码”。 一个人只能有一个姓名和多个电话号码。 所以这里的第一个键,即“Name”应该具有Value的’String’类型,而对于第二个键,即“Phone Nos”应该具有Value的’List’类型。 如何申报这样的地图。 可能吗?

使用带通配符的通用映射的问题

我有一个方法返回定义为的map : public Map getData(); 这个方法的实际实现对我来说并不清楚,但是,当我尝试这样做时: obj.getData().put(“key”,”value”) 我得到以下编译时错误消息: 方法put(String,capture#9-of?)在Map类型中不适用于参数(String,String) 问题是什么? String不是什么类型的? 提前致谢。

如何根据值来比较两个地图

如何按价值比较两张地图? 我有两个包含相等值的地图,并希望通过它们的值进行比较。 这是一个例子: Map a = new HashMap(); a.put(“foo”, “bar”+”bar”); a.put(“zoo”, “bar”+”bar”); Map b = new HashMap(); b.put(new String(“foo”), “bar”+”bar”); b.put(new String(“zoo”), “bar”+”bar”); System.out.println(“equals: ” + a.equals(b)); // obviously false …. what to call to obtain a true? [[ 编辑:有人请编辑并修复此问题,以表示其实际意味着什么。 上面的代码打印“true”,而不是“false”。 ]] 显然,要实现比较并不困难,只需比较所有键及其相关值即可。 我不相信我是第一个这样做的人,因此必须在java或jakarta.commons库中已经有一个库函数。 谢谢

在Java中编写地图文字样式是否有最佳实践?

简而言之,如果你想在Java中编写一个例如常量的映射,例如Python和Javascript,你会把它写成文字, T CONSTANTS = { “CONSTANT_NAME_0”: CONSTANT_VALUE_0 , “CONSTANT_NAME_1”: CONSTANT_VALUE_1 , “CONSTANT_NAME_2”: CONSTANT_VALUE_2 , //… } ; 是否有一个Class或任何预设Object可用于编写这样的数据结构?

Java SQLData – 使用列表/数组转换为用户对象?

我正在学习如何使用SQLData并且在回送到我的对象时遇到问题。 我的Oracle类型看起来像这样: CREATE OR REPLACE TYPE activities_t AS OBJECT ( list activity_list_t; ); CREATE OR REPLACE TYPE activity_list_t AS TABLE OF activity_t; CREATE OR REPLACE TYPE activity_t AS OBJECT ( startDate DATE; endDate DATE; ); 我的Java看起来像这样: public class Activities implements SQLData { private String sqlType = “ACTIVITIES_T”; List list; // must have default ctor! public […]

Java中的多值哈希表

是否可以在哈希表中为同一个键设置多个值? 如果没有,你能建议任何可以使用的类或接口吗?

关于不可变集和映射的JDK9随机化

阅读这个问题和Eugene给出的答案 ,我发现JDK9不可变集和映射将引入一个会影响其遍历的随机源。 这意味着迭代顺序确实是随机的,至少在JVM的不同运行中。 由于规范不保证集合和映射的任何遍历/迭代顺序,这绝对没问题。 实际上,代码绝不能依赖于特定于实现的细节,而是依赖于规范。 我知道今天,使用JDK 8,如果我有一个HashSet并执行此操作(取自链接的答案): Set wordSet = new HashSet(Arrays.asList(“just”, “a”, “test”)); System.out.println(wordSet); for (int i = 0; i < 100; i++) { wordSet.add("" + i); } for (int i = 0; i < 100; i++) { wordSet.remove("" + i); } System.out.println(wordSet); 然后元素的迭代顺序将改变,两个输出将不同。 这是因为向集合中添加和删除100个元素会更改HashSet的内部容量并重新生成元素。 这是完全有效的行为。 我这里不是在问这个问题。 但是,使用JDK9,如果我这样做: Set set = Set.of(“just”, “a”, “test”); […]

如何有效地将org.json.JSONObject映射到POJO?

以前一定要问过这个问题,但我找不到。 我正在使用第三方库来检索JSON格式的数据。 该库以org.json.JSONObject向我提供数据。 我想将此JSONObject映射到POJO(Plain Old Java Object)以获得更简单的访问/代码。 对于映射,我目前以这种方式使用Jackson库中的ObjectMapper : JSONObject jsonObject = //… ObjectMapper mapper = new ObjectMapper(); MyPojoClass myPojo = mapper.readValue(jsonObject.toString(), MyPojoClass.class); 根据我的理解,上面的代码可以得到显着优化,因为目前已经解析的JSONObject的数据再次被送入带有JSONObject.toString()方法的序列化 – 反序列化链,然后送到ObjectMapper 。 我想避免这两个转换( toString()和解析)。 有没有办法使用JSONObject将其数据直接映射到POJO?

单值映射Java的多个键

我认为我的问题与此类似: 如何使用多个键实现Map? 但有一个重要的区别。 在那个问题中(如果我对它的理解是正确的,请告诉我,如果不是),那些键应该始终是唯一的。 我希望在表单中有一个Map: MyMap ,其中键不一定是唯一的。 如果这没有意义,我基本上想要一个二维数组,但不是通过坐标引用元素,我想通过成对的对象来引用它们。 任何人都对这个有效的图书馆或自己实施的好方法有任何想法吗? 就图书馆而言,我看过Apache Commons和Guava,似乎都没有我想要的东西。

JPA Map 映射

如何在不使用Hibernate类的情况下在JPA中映射Map?