对不起,这是代码有点长,但我需要得到正确的方案.
为什么这段代码输出全部'C'?
import java.util.Hashtable;
public class Main {
public static ContainsTheHash containsthehash = new ContainsTheHash();
public static StoresValues storesvalues = new StoresValues();
public static GetsValuesAndPrints getsvaluesandprints = new GetsValuesAndPrints();
public static void main(String[] args) {}
}
class ContainsTheHash {
Hashtable script_code = new Hashtable();
public Contains_The_Hash() {};
public void put(long key, Script_Hash_Type sht){script_code.put(key, sht);}
public ScriptHashType get(long key){return (Script_Hash_Type)script_code.get(key);}
}
class ScriptHashType {
String string;
public ScriptHashType(){}
public String getstring () {return string;}
public void setstring(String str){string = …Run Code Online (Sandbox Code Playgroud) 我需要一个像C++ std :: map一样工作的类.更具体地说,我需要这样的行为:
map< string, vector<int> > my_map;
这可能吗?
我试图根据条件动态调用类方法.这就是我这样做的方式
我有三个类实现一个接口
interface IReadFile
{
string DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
A,B,C三个类实现了上面的接口.
我试图将它们添加到哈希表中,代码如下
_HashT.Add("a", new classA());
_HashT.Add("b", new classB());
_HashT.Add("c", new classC());
Run Code Online (Sandbox Code Playgroud)
这编译很好,但会产生运行时错误.{你调用的对象是空的.}
我打算根据与键值匹配的参数将正确的类返回到接口类型.如果我寄出一个.ClassA返回到接口类型并调用该方法.
IReadFile Obj = (IReadFile )_HashT["a"].GetType();
obj.DoStuff();
Run Code Online (Sandbox Code Playgroud)
如何更正上面需要将对象添加到哈希表的部分?或者我需要使用不同的方法吗?所有类都在同一个程序集和命名空间中.
谢谢你的时间.
我正在用python编写一个程序来对电影评论做一个unigram(以及最终的bigram等)分析.目标是创建要提供给libsvm的特征向量.我的特征向量中有50,000个奇怪的独特单词(这对我来说似乎相当大,但我相对肯定我是对的).
我正在使用python字典实现作为哈希表来跟踪我遇到它们时的新单词,但是我注意到在处理了前1000个奇数文档后出现了巨大的减速.如果我使用了几个较小的散列表/字典,那么我会有更好的效率(考虑到自然语言的分布),还是会相同/更差?
更多信息:
数据被分成1500个左右的文件,每个500个字.每个文档中有100到300个唯一单词(相对于所有以前的文档).
我目前的代码:
#processes each individual file, tok == filename, v == predefined class
def processtok(tok, v):
#n is the number of unique words so far,
#reference is the mapping reference in case I want to add new data later
#hash is the hashtable
#statlist is the massive feature vector I'm trying to build
global n
global reference
global hash
global statlist
cin=open(tok, 'r')
statlist=[0]*43990
statlist[0] = v
lines = cin.readlines()
for l in lines:
line = l.split(" …Run Code Online (Sandbox Code Playgroud) 我正在寻找Stack Overflow上的Hashtables的一些例子,并发现了这个:
Enumeration enumeration = companies.elements();
while ( enumeration.hasMoreElements() ) {
System.out.println("hashtable values: "+enumeration.nextElement());
}
Run Code Online (Sandbox Code Playgroud)
为什么我们使用Enumerations,特别是在Hashtables中它的意义是什么?
我正在为我的Data Structures类开发一个哈希表实验室.当我在insert函数中使用push_back()函数时,我一直在遇到一个设定的错误.但是,我不确定导致此错误的原因.
using namespace std;
HashTable::HashTable(int buckets) {
this->buckets = buckets;
vector<Entry>* table = new vector<Entry>[buckets];
}
Entry HashTable::insert(GameBoard board, int number) {
int index = compress(board.hashCode());
Entry entry = Entry(board, number);
table[index].push_back(entry);
return entry;
}
int HashTable::compress(int hashCode) {
return (hashCode % buckets);
}
Entry::Entry(GameBoard board, int value) {
this->board = board;
this->value = value;
}
int GameBoard::hashCode() {
int hashVal = 0;
for (int r = 0; r < DIMENSION; r++) {
for (int c = 0; c …Run Code Online (Sandbox Code Playgroud) 我在为哈希表实现哈希函数时遇到问题.
我想哈希我的话,使得A = 1,B = 2,C = 3,依此类推.字母在单词中的位置是无关紧要的,因为我们会考虑单词的排列.此外,字母的情况也与此问题无关,因此a的值= A = 1的值.
对于字符串,abc = 1 + 2 + 3 = 6,bc = 2 + 3 = 5等.
对于ab = 3和aaa = 3的情况,我已经有办法处理这种情况.现在我只想获得哈希值.
我现在遇到的问题是aaa给了我1,ab给了我2.
以下是我的代码:
int hash(char *word)
{
int h = 1;
int i, j;
char *A;
char *a;
// an array of 26 slots for 26 uppercase letters in the alphabet
A = (char *)malloc(26 * sizeof(char));
// an array of 26 slots for 26 lowercase letters in the alphabet …Run Code Online (Sandbox Code Playgroud) 我遵循了一个创建哈希表并将其转换为HTML的示例
http://stackoverflow.com/questions/19455435/converting-hashtable-in-powershell
Run Code Online (Sandbox Code Playgroud)
这是基于此OP的答案的示例:
$Summary = @{
Computers=$ADServerCount.count
DMZ=$TotalDMZ.count
No_Ping=$TotalNoPing.count
Reg_Failed=$TotalRegFailed.count
RebootPending=$TotalPendingReboot.count
RebootNotRequired=$TotalNoPatchRequired.count
}
[PSCustomObject]$Summary | Convertto-HTML -fragment
Run Code Online (Sandbox Code Playgroud)
...这就是我只运行$ Summary的结果-正是我期望的结果:
Name Value
---- -----
RebootNotRequired 69
DMZ 10
Computers 341
Reg_Failed
RebootPending 137
No_Ping 80
Run Code Online (Sandbox Code Playgroud)
但是,如果尝试转换为HTML,请运行[PSCustomObject] $ Summary | Convertto-HTML -fragment,我没有上面的值:
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tr><th>IsReadOnly</th><th>IsFixedSize</th><th>IsSynchronized</th><th>Keys</th>
<th>Values</th><th>SyncRoot</th><th>Count</th></tr>
<tr><td>False</td><td>False</td><td>False</td><td>System.Collections.Hashtable+
KeyCollection</td><td>System.Collections.Hashtable+ValueCollection</td><td>Syst
em.Object</td><td>1</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
请帮忙。谢谢
这是更多代码-如您所见,还有两个可以转换为HTML表的变量:$ GroupPendingRebootbyOwner和$ OlderThan30Days,但是$ Summary返回gobbledygook。我已经截断了通过电子邮件发送的其余代码。
$Summary = @{
Computers=$ADServerCount.count
DMZ=$TotalDMZ.count
No_Ping=$TotalNoPing.count
Reg_Failed=$TotalRegFailed.count
RebootPending=$TotalPendingReboot.count
RebootNotRequired=$TotalNoPatchRequired.count
}
$ExecSummary = [PSCustomObject]$Summary | Convertto-HTML -fragment
$GroupPendingRebootbyOwner = $AllTeamsFilter …Run Code Online (Sandbox Code Playgroud) 我有一本字典:
D = {1:[1,2,3],2:[4,5],3:[6,7]}
我想做的是找到所有3*2*2组合,
[[1,4,6], [1,4,7],
[1,5,6], [1,5,7],
[2,4,6], [2,4,6],
[2,5,6], [2,5,7],
[3,4,6], [3,4,7],
[3,5,6], [3,5,7] ]
Run Code Online (Sandbox Code Playgroud)
有什么办法,就像做循环一样
for key in D:
for num in D[key]:
for xxxxx
Run Code Online (Sandbox Code Playgroud)
然后执行所有组合?谢谢!
我最近开始学习数据结构.我写了一个哈希表根据这本书,使用二次探测法.这是代码:
class QuadraticProbingHashTable<E> implements HashTable<E> {
private static final int DEFAULT_TABLE_SIZE = 11;
private HashEntry<E>[] array;
private int currentSize;
public QuadraticProbingHashTable() {
this(DEFAULT_TABLE_SIZE);
}
public QuadraticProbingHashTable(int size) {
allocateArray(size);
makeEmpty();
}
@SuppressWarnings("unchecked")
private void allocateArray(int size) {
array = new HashEntry[nextPrime(size)];
}
@Override
public int size() {
return currentSize;
}
@Override
public boolean isEmpty() {
return currentSize == 0;
}
@Override
public void clear() {
makeEmpty();
}
private void makeEmpty() {
currentSize = 0;
for (int i = 0; i …Run Code Online (Sandbox Code Playgroud)