Tag: hashmap

关于java中的HashMap实现

我试图对hashmap进行研究并得出以下分析: https://stackoverflow.com/questions/11596549/how-does-javas-hashmap-work-internally/18492835#18492835 Q1你们可以给我看一个简单的地图,你可以在其中显示过程……如何通过使用这个公式详细计算给定键的哈希码..计算位置哈希%(arrayLength-1))其中应该放置元素(桶号),假设我有这个hashMap HashMap map=new HashMap();//HashMap key random order. map.put(“Amit”,”Java”); map.put(“Saral”,”J2EE”); Q2有时可能会发生2个不同对象的hashCodes相同。 在这种情况下,2个对象将保存在一个存储桶中,并将显示为LinkedList。 入口点是最近添加的对象。 该对象指的是具有下一个字段的其他对象,因此一个。 最后一个条目是指null。 你们能用真实的例子告诉我这个…… !! 。 “Amit”将被分发到第10个桶,因为有点twiddeling。 如果没有任何位置,它会转到第7个桶,因为2044535&15 = 7.这怎么可能请详细说明整个计算..? 快照已更新…… 而另一个图像是……

排序降序:Java Map

我想要做的是按值排序地图。 我查看了stackoverflow站点上提供的许多问题,并找到了以下解决方案,它可以实现我想要的但却缺少一些小东西。 Link1 :排序地图 但我遇到的问题是,默认情况下,这是按值按升序排序。 我想按降序排序: 所以我做的是创建了一个实现比较器的类 class MyComparator implements Comparator { Map map; public MyComparator(Map map) { this.map = map; } public int compare(Object o1, Object o2) { return ((Integer) map.get(o2)).compareTo((Integer) map.get(o1)); } } 然后我将我的地图传递给树图, MyComparator comp = new MyComparator(myMap); Map newMap = new TreeMap(comp); newMap.putAll(myMap); 这似乎是不好的方法,因为我觉得这是低效的。 有没有办法在链接中更改解决方案,默认情况下按降序排序。

HashMap中的桶数是什么意思?

我正在阅读有关Hashmap的内容。 HashMap的一个实例有两个影响其性能的参数:初始容量和负载因子。 容量是哈希表中的桶数。 如果Hashmap中有10个键值对。 假设Hashcode不同。 每个都会存放在一个桶里吗? 或者一个桶可以有多个键值对? 因为英语中的bucket意味着许多物体可以驻留的大事。

HashMap方法的时间复杂度

由于我正在研究时间复杂性,我一直在搜索oracle Java类库,以了解列表,地图和类中使用的一些标准方法的时间复杂性。 (更具体地说,ArrayList,HashSet和HashMap) 现在,在查看HashMap javadoc页面时 ,他们只是真正谈论get()和put()方法。 我仍然需要知道的方法是: remove(Object o) size() values() 我认为remove()将与get() , O(1)具有相同的复杂性,假设我们没有具有相同hashCodes的巨型HashMap等等…… 对于size()我还假设为O(1) ,因为HashSet(也没有顺序size()具有复杂度为O(1)的size()方法。 我不知道的是values() – 我不确定这个方法是否会以某种方式“复制”HashMap,给出O(1)的时间复杂度,或者它是否必须迭代HashMap,使复杂性等于HashMap中存储的元素数量。 谢谢。

将HashMap.toString()转换回Java中的HashMap

我将一个键值对放在Java HashMap并使用toString()方法将其转换为String 。 是否可以将此String表示forms转换回HashMap对象并使用其对应的键检索该值? 谢谢

Java是通过引用还是按值返回

我有一个HashMap: private HashMap cardNumberAndCode_ = new HashMap(); 后来我这样做: Integer balance = cardNumberBalance_.get(cardNumber); System.out.println(balance); balance = 10; Integer newBalance = cardNumberBalance_.get(cardNumber); System.out.println(newBalance); 首先它打印1000,第二次打印1000,值不变。 为什么java按值而不是通过引用返回Integer?

将数组存储在HashMap中

我是Java的新手。 如何在HashMap中存储一个整数值数组,之后我将这个HashMap写入txt文件中,但目前这并不重要。 我可以存储单个字段但不能存储数组。 有任何想法吗 ? public void salveazaObiectulCreat(String caleSpreFisier) { HashMap map = new HashMap(); map.put (“Autorul”,numelePrenumeleAutorului); map.put (“Denumirea cartii”,denumireaCartii); map.put (“Culoarea cartii”,culoareaCartii); map.put (“Genul cartii”,gen); map.put (“Limba”,limba); map.put (“Numarul de copii”,numarulDeCopii); map.put (“Numarul de pagini”,numarulDePagini); map.put (“Pretul cartii”,pretulCartii); try { File file = new File(caleSpreFisier); FileOutputStream f = new FileOutputStream(file); ObjectOutputStream s = new […]

类对象与Hashmap

使用hashmap而不是使用对象类是好的……使用Hashmap …. Map cellMap = new HashMap(); int j = 0; while (cellIter.hasNext()) { HSSFCell myCell = (HSSFCell) cellIter.next(); cellMap.put(columnMap[j], myCell.toString()); j++; } 并使用对象类….. ABC abc= new ABC(); abc.setA(myRow.getCell(0).toString()); abc.setB(myRow.getCell(1).toString()); abc.setC(myRow.getCell(2).toString()); 请在应用程序运行状况,内存要求等方面告诉我……

使用值从HashMap获取密钥

我想使用该值获取HashMap的键。 hashmap = new HashMap(); haspmap.put(“one”, 100); haspmap.put(“two”, 200); 这意味着我想要一个值为100的函数,并返回一个字符串。 似乎这里有很多问题要求同样的事情,但它们对我不起作用。 也许是因为我是java新手。 怎么做?

如何使用HashMap编写和读取文件?

我有一个带有两个字符串Map ldapContent = new HashMap的HashMap Map ldapContent = new HashMap 。 现在我想将Map保存在外部文件中,以便稍后使用Map而无需再次初始化它… 那么如何保存Map以便以后再使用呢?