我想为android中的字符串生成一个唯一的哈希码.是否有任何预定义库或我们必须手动生成.如果有任何正文,请提供链接或代码.
我正在创建一个计算器..我把我的按钮放在HashMap集合上,当我想将它们添加到扩展Jpanel的类时,我不知道如何从我的集合中获取按钮.所以我在网上发现了我的代码的最后两行,但我不知道它们的含义.
这是我的代码:
import java.awt.Component;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.swing.JButton;
import javax.swing.JPanel;
public class PanneauCalcul extends JPanel {
private HashMap<String, JButton> listbouton = new HashMap<String, JButton>() ;
public PanneauCalcul() {
for(int i = 0; i < 10; i ++) {
listbouton.put("num" + i, new JButton("" + i)) ;
}
listbouton.put("add", new JButton("+")) ;
listbouton.put("soustract", new JButton("-")) ;
listbouton.put("multiply", new JButton("x")) ;
listbouton.put("divise", new JButton("/")) ;
listbouton.put("equal", new JButton("=")) ;
Set entrys = listbouton.entrySet() ;
Iterator iter …Run Code Online (Sandbox Code Playgroud) 在Ruby哈希中使用整数作为键是否合适?
文档中的每个示例都显示一个字符串或符号用作键,但从不是整数.
在内部,整数会以某种方式转换为字符串吗?我看到有关这个问题的一些相互矛盾的信息.
换句话说,使用整数键到散列有什么明显的缺点吗?
如何合并这两个哈希:
{:car => {:color => "red"}}
{:car => {:speed => "100mph"}}
Run Code Online (Sandbox Code Playgroud)
要得到:
{:car => {:color => "red", :speed => "100mph"}}
Run Code Online (Sandbox Code Playgroud) 让我们考虑一个hashmap
Map<Integer, List> id1 = new HashMap<Integer,List>();
Run Code Online (Sandbox Code Playgroud)
我在两个hashmap中都插入了一些值.
例如,
List<String> list1 = new ArrayList<String>();
list1.add("r1");
list1.add("r4");
List<String> list2 = new ArrayList<String>();
list2.add("r2");
list2.add("r5");
List<String> list3 = new ArrayList<String>();
list3.add("r3");
list3.add("r6");
id1.put(1,list1);
id1.put(2,list2);
id1.put(3,list3);
id1.put(10,list2);
id1.put(15,list3);
Run Code Online (Sandbox Code Playgroud)
Q1)现在我想对hashmap中的键应用过滤条件并检索相应的值(List).
例如:这里我的查询是key = 1,输出应该是'list1'
我写
id1.entrySet().stream().filter( e -> e.getKey() == 1);
Run Code Online (Sandbox Code Playgroud)
但我不知道如何检索列表作为此流操作的输出.
Q2)我想再次对hashmap中的键应用过滤条件并检索相应的列表列表.
例如:这里我的查询是key = 1%(即键可以是1,10,15),输出应该是'list1','list2','list3'(列表列表).
c ++ unordered_map碰撞处理,调整大小和重新散列
这是我之前提出的一个问题,我看到我对unordered_map的实现方式感到很困惑.我相信很多其他人都会和我分享这种困惑.基于我所知道的信息而不阅读标准:
每个unordered_map实现都将链表存储到存储桶数组中的外部节点...不,这对于实现最常见用途的哈希映射来说并不是最有效的方法.不幸的是,unordered_map规范中的一个小"疏忽"都需要这种行为.所需的行为是元素的迭代器在插入或删除其他元素时必须保持有效
我希望有人可以解释实现以及它如何与c ++标准定义(在性能要求方面)相对应,以及它是否真的不是实现哈希映射数据结构的最有效方法如何改进它?
这是我试图做的,但它给了我一个警告:
HashMap<String, String>[] responseArray = new HashMap[games.size()];
Run Code Online (Sandbox Code Playgroud)
类型安全:HashMap []类型的表达式需要未经检查的转换以符合HashMap []
我需要知道:Java中HashMap.containsKey()的时间复杂度是多少?
我试过了
if map == nil {
log.Fatal("map is empty")
}
Run Code Online (Sandbox Code Playgroud)
但是没有执行日志语句.
我fmt.Println(map)以前打印地图,可以看到它是空的:
map[]
Run Code Online (Sandbox Code Playgroud)
如何测试空地图?
我正在查看HashMapJava 7 中的源代码,我看到该put方法将检查是否已存在任何条目,如果它存在,那么它将用新值替换旧值.
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
}
Run Code Online (Sandbox Code Playgroud)
所以,基本上它意味着给定密钥总是只有一个条目,我也通过调试看到了这一点,但如果我错了,那么请纠正我.
现在,由于给定键只有一个条目,为什么该get方法有FOR循环,因为它可以简单地直接返回值?
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
} …Run Code Online (Sandbox Code Playgroud) hashmap ×10
java ×6
ruby ×2
android ×1
arrays ×1
c++ ×1
c++11 ×1
collections ×1
collectors ×1
dictionary ×1
go ×1
hash ×1
java-8 ×1
performance ×1