Tag: hashmap

使用jackson创建json对象

如何使用jackson创建一个类似于下面示例的json数组。 我尝试使用ObjectMapper,但这似乎不正确。 try (DirectoryStream ds = Files.newDirectoryStream(path)) { for (Path file : ds) { System.out.println(“name:”+file.getFileName()+ “\n”+ “mime:”+Files.probeContentType(file)+ “\n”+ “locked:”+!Files.isWritable(file)); } } catch (IOException e) { System.err.println(e); } 最终我将制作一个具有以下值的json。 * – (int) size file size in b. required * – (int) ts file modification time in unix time. required * – (string) mime mimetype. required for […]

Java:如何在hashmap中获取具有相同值的键集

我有一个hashmap如下: 1-> X 2->ÿ 3-> X 4->ž 现在我想知道值为x的所有键(ans:[1,3])。 什么是最好的方法? 蛮力方式是迭代地图并将所有键存储在值为x的数组中。 有没有有效的方法。 谢谢

HashMap调整方法实现细节

正如标题所示,这是一个关于HashMap#resize的实现细节的问题 – 当内部数组的大小加倍时。 这有点罗嗦,但我真的试图certificate我对此有了最好的理解…… 这发生在此特定桶/箱中的条目以Linked方式存储的时刻 – 因此具有确切的顺序并且在问题的上下文中这是重要的 。 一般来说, resize也可以从其他地方调用,但让我们只看一下这种情况。 假设您将这些字符串作为键放在HashMap (右侧是HashMap hashcode 之后的 HashMap#hash – 这是内部重新散列。)是的,这些都是精心生成的,而不是随机的。 DFHXR – 11111 YSXFJ – 01111 TUDDY – 11111 AXVUH – 01111 RUTWZ – 11111 DEDUC – 01111 WFCVW – 11111 ZETCU – 01111 GCVUR – 11111 这里有一个简单的模式 – 最后4位对于所有这些都是相同的 – 这意味着当我们插入这些键中的8个(总共9个)时,它们最终会在同一个桶中; 在第9个HashMap#put ,将调用resize 。 因此,如果当前在HashMap有8个条目(具有上面的一个键) – 这意味着在该映射中有16个桶,并且它们的最后4个位决定了条目最终的位置。 […]

字符串到HashMap JAVA

我有一个Java属性文件,并且有一个KEY作为ORDER 。 所以我在加载属性文件后使用getProperty()方法检索该KEY的VALUE ,如下所示: String s = prop.getProperty(“ORDER”); 然后 s =”SALES:0,SALE_PRODUCTS:1,EXPENSES:2,EXPENSES_ITEMS:3″; 我需要从上面的字符串创建一个HashMap。 SALES,SALE_PRODUCTS,EXPENSES,EXPENSES_ITEMS应该是HashMap的KEY和0,1,2,3,应该是KEY的VALUE 。 如果它很硬,看起来如下: Map myMap = new HashMap(); myMap.put(“SALES”, 0); myMap.put(“SALE_PRODUCTS”, 1); myMap.put(“EXPENSES”, 2); myMap.put(“EXPENSES_ITEMS”, 3);

Java:基于正则表达式在HashMap密钥中搜索?

我正在使用HashMap构建同义词库以存储同义词。 我正在尝试基于正则表达式搜索单词:该方法必须将字符串作为参数并返回结果数组。 这是我第一次尝试: public ArrayList searchDefinition(String regex) { ArrayList results = new ArrayList(); Pattern p = Pattern.compile(regex); Set keys = thesaurus.keySet(); Iterator ite = keys.iterator(); while (ite.hasNext()) { String candidate = ite.next(); Matcher m = p.matcher(candidate); System.out.println(“Attempting to match: ” + candidate + ” to ” + regex); if (m.matches()) { System.out.println(“it matches”); results.add(candidate); } […]

基于值按降序对Map 进行排序

可能重复: 如何在Java中的值上对Map 进行排序? 我使用map接口从文件中读取,然后将值存储为键值对。 文件格式如下 A 34 B 25 c 50 我将从该文件中读取数据并将其存储为键值对,然后我将向用户显示该数据。 我的要求是以这种格式显示结果 C 50 A 34 B 25 因此,我需要按值的降序对地图进行排序。 所以我将能够显示这些作为我的结果..我已经阅读了这个并找到下面的代码 static <K,V extends Comparable> SortedSet<Map.Entry> entriesSortedByValues(Map map) { SortedSet<Map.Entry> sortedEntries = new TreeSet<Map.Entry>( new Comparator<Map.Entry>() { @Override public int compare(Map.Entry e1, Map.Entry e2) { int res = e1.getValue().compareTo(e2.getValue()); return res != 0 ? res […]

java.util.HashMap和HashSet的内部实现

我一直在尝试理解java.util.HashMap和java.util.HashSet的内部实现。 以下是我脑海中浮现的疑惑: 什么是HashMap / HashSet中@Override public int hashcode()的重要性? 这个哈希码在内部使用在哪里? 我一般看到HashMap的键是一个像myMap这样的myMap 。 我可以将值映射到someObject (而不是String),如myMap吗? 我需要遵守的所有合同成功实现了什么? 提前致谢 ! 编辑: 我们是说密钥的哈希码(check!)是在哈希表中映射值的实际内容吗? 当我们做myMap.get(someKey); java在内部调用someKey.hashCode()来获取哈希表中要查找结果值的数字? 答:是的。 编辑2: 在java.util.HashSet ,从哪里为Hash表生成密钥? 它来自我们正在添加的对象,例如。 mySet.add(myObject); 那么myObject.hashCode()将决定它在哈希表中的位置? (因为我们不在HashSet中给出键)。 答:添加的对象成为关键。 价值是假的!

为什么Hashtable不允许空键或值?

正如JDK文档中所指定的,Hashtable不允许使用null键或值。 HashMap允许一个空键和任意数量的空值。 为什么是这样?

将字符串数组转换为Map

我有两个字符串数组键和值 String[] keys = {a,b,c,d}; String[] values = {1,2,3,4}; 将它们转换为地图的最快方法是什么? 我知道我们可以遍历它们。 但是,有没有任何实用工具?

JComboBox对象实例中的项

您好我有以下代码,以查看JComboBox中的项是否是类(Persoon)的实例。 public class ItemChangeListener implements ItemListener { Persoon selectedPerson; RekeningApp app; PersoonView view; public ItemChangeListener(PersoonView view) { this.view = view; } public void itemStateChanged(ItemEvent event) { if (event.getStateChange() == ItemEvent.SELECTED) { Object item = event.getItem(); System.out.println(“Itemchangelistener ” + item); // do something with object if(item instanceof Persoon) { System.out.println(“Instance”); this.selectedPerson = (Persoon) item; view.setOverzicht(this.selectedPerson); } […]