Tag: hashmap

Multimap Java的多重映射 – 对时间表进行分类

我已经解析了一个HTML时间表并将每个Subject加载到我的类对象中。 所以我有我的主题的arrayList,其中包含姓名,老师,…,HOUR和DAY的信息,现在我想要重建表格,所以我需要先对它进行分类。 我认为最好是这样的结构: Monday: 1: Math, Czech, … 2: History … Tuesday: 1: English, Geo 2… … 在给定的时间内可能有多个主题,因此我尝试使用Multimap的Multimap,但我无法在解析期间声明它。 Multimap<String, Multimap> timetable = HashMultimap.create(); … for … timetable.put(subject.den, new HashMultimap(subject.hod, subject)); 但它说HashMultimap有私人访问com.google.common …我不知道如何正确地写这个。 我也在考虑使用Array,但我必须预先声明它,我想在一个循环中构建它。 有任何想法吗? 先感谢您

HashMap是一个合适的数据结构

我在HashMap中存储了3种类型的对象。 HashMap<String, ArrayList> [‘Lorry’, [list of lorries]] [‘Sport’, [list of sport’s cars]] HashMap字符串键保持对象的类型(Car的子类),第二个元素在数组中存储具有如下属性的对象:ID,日期等。 我要做的四件主要事情是: 当没有提供有关其类型的信息时,检查HashMap中是否存在某些ID 根据类型打印某些ID的元素。 打印特定类型的所有元素 如果每个对象分配的某个属性具有布尔值,例如“true”,则打印集合(不同类型)中的所有元素; HashMap是否是正确的结构? 如果谈到第一点,我发现它有问题。 似乎我将不得不遍历整个集合,如果是这样,其他集合对于这些要求更好?

使用hashmap创建文本的字数

我正在尝试创建一个程序作为我自己的哈希地图教程。 我要求用户输入文本并尝试将其拆分为散列图,然后在重复该单词时增加计数。 这是我的计划: import java.util.*; import java.lang.*; import javax.swing.JOptionPane; import java.io.*; public class TestingTables { public static void main(String args[]) { { String s = JOptionPane.showInputDialog(“Enter any text.”); String[] splitted = s.split(” “); HashMap hm = new HashMap(); int x; for (int i=0; i<splitted.length ; i++) { hm.put(splitted[i], i); System.out.println(splitted[i] + " " + i); […]

不确定我是否应该搜索或排序我的hashmap

嗨,我有一个有他们年龄的人的名单,我需要找到超过30岁的人,有没有可能在hashmap中搜索? (请注意,我可能需要寻找其他年龄段的人,所以为了简化代码,我不想使用两个不同的列表) 简而言之:我的目标是找到一种在HashMap中搜索具有特定值的元素的方法 样品清单是 element1 40 element2 4 element3 66 element4 5 我想找到值大于40的值和值大于或等于66的值。

字符串中已排序的hashmap的Sstore键值

我很抱歉发布这个不明确的问题。 这是我第一次使用hashmap,因此我很困惑。 试图以更好的方式解释这个问题 – 在string []中存储hashmap的键值 我有一个基于值的排序哈希映射。 我想从有序映射中提取键并将它们存储在String []数组中。 键的顺序(按值排序)很重要。 我用这段代码对值的hashmap进行排序 – http://www.xinotes.org/notes/note/306/ 为了提取密钥数组,我试过了 String[] keys = (String[])( hm.keySet().toArray( new String[hm.size()] ) ) (这里的hm是hashmap) 但这种方法不起作用。 键字符串[]具有键但不是我想要的排序顺序。 更新:我使用了linkedHashMap,并能够将排序的键值存储在数组中。 这是代码的链接。

将key = value的String解析为Map

我正在使用一个API给我一个XML,我需要从一个标签获取一个实际上是字符串的地图。 例: 有 Billable=7200,Overtime=false,TransportCosts=20$ 我需要 [“Billable”=”7200″,”Overtime=false”,”TransportCosts”=”20$”] 问题是字符串是完全动态的,所以,它可能就像 Overtime=true,TransportCosts=one, two, three Overtime=true,TransportCosts=1= 1,two, three,Billable=7200 所以我不能用逗号分割,然后用等号分开。 是否可以使用正则表达式将类似字符串转换为地图? 到目前为止我的代码是: private Map getAttributes(String attributes) { final Map attr = new HashMap(); if (attributes.contains(“,”)) { final String[] pairs = attributes.split(“,”); for (String s : pairs) { if (s.contains(“=”)) { final String pair = s; final String[] keyValue = pair.split(“=”); attr.put(keyValue[0], […]

Java中的FileNotFoundexception

(我是Java新手)…我想在HashMap中存储一些类字段值,然后将其写入文件(路径作为参数传递),然后恢复HashMap并获取所需信息。 在我的名为Carte的构造函数中,我得到一个exception,即找不到文件,无论如何它都在正确的位置,保存的数据在我的xml文件中。 关于这一点的任何想法 发生exception:java.io.FileNotFoundException:users / stefan / desktop / lol.xml(没有这样的文件或目录) // Salveaza toate obiectele create intr-un fisier public void salveazaObiecteleCreate(String caleSpreFisier) { HashMap table = new HashMap(); table.put(“Autorul”, numelePrenumeleAutorului); table.put(“Denumirea cartii”, denumireaCartii); table.put (“Culoarea cartii”,culoareaCartii); table.put (“Genul cartii “,gen); table.put (“Limba”,limba); table.put (“Numarul de copii”,numarulDeCopii); table.put (“Numarul de pagini”,numarulDePagini); table.put (“Pretul cartii”,pretulCartii); try { File […]

按键对HashMap 进行排序

你好我需要实现一个接收HashMap的方法,并按键排序(mergeSort)它的值(不使用TreeMap,SortedMap或Collections.Sort或使用JAVA包中的任何排序解决方案) 。 我的问题是处理通配符类型…这是我的实现(由于使用通配符而返回编译错误) public HashMap mergeSort(HashMap map) { if (map.size() < 1) { return map; } // rounds downwards int middle = map.size() / 2; int location = 0; HashMap mapLeft = new HashMap(); HashMap mapRight = new HashMap(); // splitting map for (Iterator keyIter = map.keySet().iterator(); keyIter.hasNext();) { if (location < middle) { mapLeft.put(keyIter, […]

HashMap持有重复键

在尝试使用HashMap ,我发现了一些奇怪的东西。 运行4个线程,每个线程尝试使用0到9999之间的键(键,值),值为常量字符串。 完成所有线程后, map.size()返回大于10,000的值。 这怎么发生的? 这是否意味着地图包含重复的键? 我迭代了map.entrySet()并发现某些键的计数确实超过1.如果我在地图上为一个这样的键执行get() ,将返回什么值。 这是我试过的代码 final HashMap vals = new HashMap(16_383); Runnable task = new Runnable() { @Override public void run() { for (int i = 0; i < 10000; i++) { vals.put(""+i, Thread.currentThread().getName()); } } }; Thread thread = new Thread(task, "a"); Thread thread1 = new Thread(task, "b"); Thread […]

将HashMap值添加到TreeSet时出错

这是一些示例代码……我似乎总是得到一个ClassCastException …任何人都指出我做错了什么? package com.query; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.TreeSet; import org.junit.Test; import com.google.common.collect.Sets; public class ClassCastExceptionTest { @Test public void test() { A a1 = new A(1); A a2 = new A(2); A a3 = new A(3); Map<String, A> map = new HashMap<String, A>(); map.put(“A1”, a1); map.put(“A2”, a2); […]