Tag: hashmap

JAXB HashMap无法映射

我想将POJO类中的HashMap转换为XML。 我尝试使用XmlAdapter但它只导致HashMap的键和值对是XML Elements的属性。 我需要将Key作为Element本身,并将HashMap的值作为元素的值。 例如,我需要以下XML: 555 123.45 12345 card Q 123.45 2333 cash Q 我创建了以下类:MyMapType包含MyMapEntryType类的列表,该类包含两个字段,即Key和Value。 如何将Key元素更改为@XmlElement并将值字段分配给Key字段? 这是我的源文件。 MyMapType.java import java.util.ArrayList; import java.util.List; public class MyMapType { private List entry = new ArrayList(); public List getEntry() { return entry; } public void setEntry(List entry) { this.entry = entry; } } MyMapEntryType.java import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import […]

如何使用三个值获取HashMap值

如果我有一个带有这样一个键的HashMap: [pubDate, title, link]和这样的值(例子): [Thu, 03 Jan 2013 21:50:02 +0100, Transferts – YBX : ”Je change de dimension”, http://www.link.fr/info/link_informations.html] 我可以检索链接http://www.link.fr/info/link_informations.html吗? 码: for (int i = 0; i < nl.getLength(); i++) { // creating new HashMap map = new HashMap(); Element e = (Element) nl.item(i); // adding each child node to HashMap key => value map.put(KEY_TITLE, […]

存储新对象作为hashmap的值?

我试图找到一种方法来存储类的新实例作为Java哈希映射中的值。 这个想法是由Java教师给我的,以便创建一个可用于我正在处理的程序的数据存储结构。 他向我推荐的想法是使用存储计算机名称的hashmap作为键,值将是InfoStor.class类的新实例。 InfoStor包含getName(),setName(),getMemory()等方法…… 我有类和方法几乎设置为基本测试,看它是否工作。 我遇到的问题是,一旦我在hashmap中创建了一个新条目,我就无法弄清楚如何使用InfoStor中的方法。 这是我到目前为止的代码; VMware.class import java.util.HashMap; public class VMware { public static void main(String[] args) { HashMap mapper = new HashMap(); mapper.put(“NS01”, new InfoStor(“NS01”)); //mapper.get(“NS01”). } } InfoStor.class public class InfoStor { private String vmName; private String platform; private Integer memory; public InfoStor (String name) { vmName = name; } String […]

如何在jsf中显示hashmap值?

我有bean“MyBean”,它有属性HashMap – “map”,其值类型是MyClass。 我想使用ui:repeat在jsf中显示map的一些属性。 但是这些代码: 但是这段代码没有显示任何内容。 虽然当我尝试以这种方式在jsp中显示hashmap值时,它是成功的。 哪里错了? 怎么解决这个问题?

是什么导致java.util.HashSet和HashMap.keySet()类的iterator()稍微不可预测的排序?

六年前,我烧了几天试图追捕我完全确定的框架随机响应的地方。 在精心追逐整个框架确保它全部使用相同的Random实例后,我继续追逐单步执行代码。 这是高度重复的迭代自调用代码。 更糟糕的是,该死的效果只会在完成大量迭代后出现。 在+6小时之后,当我在javadoc中为HashSet.iterator()发现一行时,我终于处于智慧状态,表明它不能保证返回元素的顺序。 然后,我浏览了整个代码库,并用LinkedHashSet替换了所有HashSet实例。 而且,我的框架正好向确定性生活迈进! 哎呀! 我现在刚刚经历过同样的FREAKIN影响(至少这次只有3个小时)。 无论出于何种原因,我都错过了HashMap恰好为其keySet()提供相同方式的小细节。 这是关于这个主题的SO线程,虽然讨论从来没有完全回答我的问题: HashSet的迭代顺序 所以,我很好奇为什么会这样。 鉴于我两次都有一个巨大的单线程java应用程序在完全相同的实例化/插入空间中使用完全相同的JVM参数(来自同一批处理文件的多次运行)在同一台计算机上运行,​​几乎没有其他任何运行,这可能会扰乱JVM使得HashSet和HashMap在经过大量迭代之后会出现不可预测的行为(并不是因为javadoc说不依赖于顺序而不一致)? 从源代码(java.util中的这些类的实现)或您对JVM的了解(可能是某些GC影响内部java类在分配内部存储空间时获得非零内存的位置)的任何想法?

将哈希映射转换为二维数组

将HashMap转换为2D数组的最简单方法是什么?

如何在Java中将两个数组映射到一个HashMap?

我有两个String数组。 一个人的名字很短。 // days short name String[] shortNames = {“SUN”, “MON”, “…”, “SAT”}; 另一个有很长的名字。 // days long name String[] longNames = {“SUNDAY”, “MONDAY”, “….”, “SATURDAY”}; 两者都具有相同数量的元素。 如何在HashMap中将短名称映射为KEY,将长名称映射为VALUE? HashMap days = new HashMap(); 我知道,我可以通过循环来制作。 有没有更好的办法?

从散列映射中删除给定值的所有项

所以我有一个如下所示的java hashmap: hMap.put(“1”, “One”); hMap.put(“2”, “Two”); hMap.put(“3”, “Two”); 我想删除值为“Two”的所有项目 如果我这样做: hmap.values().remove(“Two”); 只删除了第一个,我想将它们全部删除,怎么办呢?

为什么HashMap的哈希表标记为瞬态,尽管该类是可序列化的

我正在查看HashMap的来源。 HashMap implements Serializable 。 好的,它可以作为对象进行存储/传输。 但我发现散列表本身被标记为transient 。 我不明白。如果你把它标记为瞬态,这是不是意味着它不应该被序列化? 但所有的数据都在表格中。那为什么它是transient ? 也许我对Serializable如何工作感到困惑?

使用属性文件中的条目填充HashMap

我想使用Properties类填充HashMap 。 我想加载.propeties文件中的条目,然后将其复制到HashMap 。 之前,我曾经使用属性文件初始化HashMap ,但现在我已经定义了HashMap并且只想在构造函数中初始化它。 早期方法: Properties properties = new Properties(); try { properties.load(ClassName.class.getResourceAsStream(“resume.properties”)); } catch (Exception e) { } HashMap mymap= new HashMap((Map) properties); 但现在,我有这个 public class ClassName { HashMap mymap = new HashMap(); public ClassName(){ Properties properties = new Properties(); try { properties.load(ClassName.class.getResourceAsStream(“resume.properties”)); } catch (Exception e) { } mymap = properties; […]