PS C:\Users\kris> $hashx=@{}
PS C:\Users\kris> $(Get-CimInstance Win32_Process | Select-Object ProcessId, Name) | ForEach-Object { $hashx[$_.ProcessId]=$_.Name }
PS C:\Users\kris> $hashx
Name Value
---- -----
1292 svchost.exe
6032 StartMenuExperienceHost.exe
428 smss.exe
4736 powershell.exe
2580 svchost.exe
5628 explorer.exe
5164 taskhostw.exe
PS C:\Users\kris> $hashx['5164']
PS C:\Users\kris> $hashx.5164
PS C:\Users\kris> $hashx."5164"
PS C:\Users\kris> $hashx.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Hashtable System.Object
Run Code Online (Sandbox Code Playgroud)
谁能解释一下我做错了什么?我是 powershell 的初学者,我不明白为什么它按键返回空值?
哪个是最好和最简单的哈希函数,它为5000以下的整数生成唯一的哈希值?
实际问题是我有一个大小约为50的整数数组,包含1到5000之间的值.现在我必须进行反向映射,即给定一个值,我必须找出它存储的索引.我知道可以通过使用二进制搜索来完成,因为我的数组已经排序.
请不要为C建议任何哈希库.
我是Perl和Linux的新手.我试图在Perl中编写一个程序来查找数组中的元素数.(这个数组应该由当前目录中扩展名为".txt"的文件组成.然后我计划使用这个数组将所有".txt"文件读入一个哈希值.)但是,我不断得到一个数组大小= 0.我知道我的目录中有超过8个".txt"文件,所以我不会有超过8个数组元素吗?
我的计划如下:
#!/user/bin/perl
my $readfdir = '.';
opendir(DIR, $readfdir) or die $!;
my @readf = glob(".*.txt");
my $arrSize = @readf;
print "array size = $arrSize\n";
Run Code Online (Sandbox Code Playgroud)
请指导我做错了什么.谢谢!
基本上,我知道HashMap和HashTable之间的区别.
我试图通过实际编码来理解它们之间的区别.
这是我在Java中的主要方法
System.out.println("HashMap");
HashMap <String , String> map = new HashMap<String, String>();
map.put("A", "Hello");
map.put("B", "World");
Set<String> set = map.keySet();
map.put("C", "YoYo");
Iterator<String> itr = set.iterator();
while(itr.hasNext())
{
String temp = itr.next();
System.out.println(temp +" value: "+ map.get(temp));
}
System.out.println("HashTable");
Hashtable<String , String> table = new Hashtable<>();
table.put("A", "Hello");
table.put("B", "World");
Set<String> set2 = table.keySet();
table.put("C", "YoYo");
Iterator<String> itr2 = set2.iterator();
while(itr2.hasNext())
{
String temp = itr2.next();
System.out.println(temp +" value: "+ table.get(temp));
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
HashMap
A value: Hello
B value: …Run Code Online (Sandbox Code Playgroud) 我想知道hashtable在使用Put方法后如何对其值进行排序.
例如:
a b c d e
Normal 2 weeks Next Save and Finish Go to Cases
Run Code Online (Sandbox Code Playgroud)
hashtable.put( "一", "正常"); ...
值的顺序将不同,并且与我们放置的顺序不同.我认为订单会是这样的:
b a e c d
2 weeks Normal Go to Cases Next Save and Finish
Run Code Online (Sandbox Code Playgroud)
请建议解决问题的数据结构.
谢谢.
为什么我的Java HashMap不起作用?我的对象具有.equals平等意味着hashCode平等的属性。
您可以假定将对象添加到中之后,正在修改对象的字段HashMap。
我听说人们使用它们来跟踪会话变量,但我真的想知道它们是否有很多用途,在什么条件下使用哈希表与任何其他可以处理键值对的数据结构都是有益的,比如字典.
例如.我听说过人们将会话值放在哈希表中,然后将哈希表放在Session对象中.我只是想知道那是什么好处.
- 性能更高吗? - 它是否可以防止其他开发人员将同名变量放入会话中?
编辑.
我想通过将列表的每个值分配给"喜欢"来返回元素字典,但我不断出现错误.这是我的代码.
def f([a,b,c]):
d={a:'like'}
for x in [a,b,c]:
d[x]='like'
return d
Run Code Online (Sandbox Code Playgroud) 说我有一个元组列表:
[(98, 'studentA'), (97, 'studentB'), (98, 'studentC'), (95,'studentD')]
Run Code Online (Sandbox Code Playgroud)
我想组织它,以便学生按元组中的第一个数字组合在一起,最好的方法是什么?
我正在考虑创建一个列表数组,其中数组的每个索引将是一个不同的分数(在此示例中为98,97和95),学生将在该索引的列表中.对于一个更大的数据集,我正在考虑创建一个链式哈希表,但我不知道该怎么做,以保证两个不相同的分数不会被散列到相同的位置.
我在c#中构建了一个应用程序但是我从java代码中获取资源.
检查这个java代码:
public class Aclass{
public Hashtable<String, BleDevice> meusBLEs = new Hashtable<String, BleDevice>();
}
Run Code Online (Sandbox Code Playgroud)
BleDevice是另一个类.
在c#中是这样的:
public Hashtable meusBLEs = new Hashtable ();
Run Code Online (Sandbox Code Playgroud)
但没有参数.
那么,我是怎么用c#(CSharp)做的
我感兴趣的是将字母哈希值散列到相对较小的不同素数.例如, a->2,b->3, c->5, d->7, ....因为我将乘以/除以几个字符的哈希值.
std::hash然而,我尝试将字符散列为非常大的整数,如果我乘以/除,它会导致溢出,是否有更简单的方法可以做到这一点?
我可能的一种方法是使用Eratosthenes筛子生成第一批素数,然后使用a std::unordered_map来存储char,int对.但是,标准库中是否有任何现成的散列函数可以满足我的需求?