我试图使用枚举迭代哈希表中的键列表但是我一直在列表中的最后一个键获得NoSuchElementException?
Hashtable<String, String> vars = new Hashtable<String, String>();
vars.put("POSTCODE","TU1 3ZU");
vars.put("EMAIL","job.blogs@lumesse.com");
vars.put("DOB","02 Mar 1983");
Enumeration<String> e = vars.keys();
while(e.hasMoreElements()){
System.out.println(e.nextElement());
String param = (String) e.nextElement();
}
Run Code Online (Sandbox Code Playgroud)
控制台输出:
EMAIL POSTCODE
Exception in thread "main" java.util.NoSuchElementException: Hashtable Enumerator
at java.util.Hashtable$Enumerator.nextElement(Unknown Source)
at testscripts.webdrivertest.main(webdrivertest.java:47)
我想另一种表达方式的方法是"是否有类似List<>C#的类,但是为了检查特定值是否存在而进行了优化?" 我确信一小部分值List<>.Contains可能会很好,但是如果我有一组数千或数百万的值并且想知道某个值是否在其中呢?
我过去通过创建一个Dictionary<object, int>并为每个键设置值为0来实现这种事情,但这感觉非常笨重.而现在有Stack Overflow,我的愚蠢问题可以转化为成千上万的教育(甚至几十年).所以在这里!
我甚至不确定这样一个类会被调用,除了可能Set,所以显然搜索主题已经...挑战:)
我有一个Perl脚本,它计算文本文件中各种字符串的出现次数.我希望能够检查某个字符串是否还不是散列中的键.是否有更好的方法完成这项工作?
这是我在做的事情:
foreach $line (@lines){
if(($line =~ m|my regex|) )
{
$string = $1;
if ($string is not a key in %strings) # "strings" is an associative array
{
$strings{$string} = 1;
}
else
{
$n = ($strings{$string});
$strings{$string} = $n +1;
}
}
}
Run Code Online (Sandbox Code Playgroud) Unicode有一百万个类似图标的字形,但它们并不总是很容易搜索,因为我并不总是知道它们的样子.
是否有一个看起来像"密钥"的Unicode字形?或者是否有一个符号在数据库圈中用来表示"主键",它是用Unicode?
比方说,我有一些做X的Android应用程序.免费版本有广告或基本功能.我想要一个支付版本,删除广告并添加额外的功能.
如何使用付费应用作为"许可证密钥"来解锁免费应用中的功能?
因此,用户将安装免费应用程序,然后安装付费应用程序以获得额外功能,但他们仍将运行免费应用程序(现在将解锁).这样做的最佳方法是什么?
我确信这是PHP中的超级简单和内置函数,但我还没有看到它.
这就是我现在正在做的事情:
foreach($array as $key => $value) {
echo $key; // Would output "subkey" in the example array
print_r($value);
}
Run Code Online (Sandbox Code Playgroud)
我可以做类似下面的事情,从而避免在每个foreach循环中写"$ key => $ value"吗?(伪码)
foreach($array as $subarray) {
echo arrayKey($subarray); // Will output the same as "echo $key" in the former example ("subkey"
print_r($value);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
数组:
Array
(
[subKey] => Array
(
[value] => myvalue
)
)
Run Code Online (Sandbox Code Playgroud) 所以,我有一个表格:
arr =
{
apples = { 'a', "red", 5 },
oranges = { 'o', "orange", 12 },
pears = { 'p', "green", 7 }
}
Run Code Online (Sandbox Code Playgroud)
它似乎不可能根据它们的索引访问它们,并且值本身就是表,所以我只是将嵌套表的第一个值作为它的索引,所以它现在看起来像这样:
arr =
{
apples = { 0, 'a', "red", 5 },
oranges = { 1, 'o', "orange", 12 },
pears = { 2, 'p', "green", 7 }
}
Run Code Online (Sandbox Code Playgroud)
所以,现在任何时候我使用其中一个表,我知道索引是什么,但仍然无法使用索引到达表,所以我开始编写一个循环遍历它们的函数,并检查索引直到它找到了合适的人选.然后我意识到......如果我不能通过索引引用它们,我怎么能遍历它们?所以,现在我被卡住了.我真的希望能够在大多数时间输入arr.apples和arr [1],但当然有时需要同时输入两个.
似乎没有一个作为字典键,但我想知道这是否会导致以后的麻烦.例如,这有效:
>>> x={'a':1, 'b':2, None:3}
>>> x
{'a': 1, None: 3, 'b': 2}
>>> x[None]
3
Run Code Online (Sandbox Code Playgroud)
我正在使用的实际数据是教育标准.每个标准都与内容区域相关联.一些标准也与内容子区域相关联.我想创建一个嵌套的表单字典{contentArea:{contentSubArea:[standards]}}.其中一些contentSubArea键将为None.
特别是,我想知道如果我找到一个在某些时候不存在的密钥,或者像这样的意外事件,这是否会导致混淆.
我在MongoDB中有一个集合,其中有大约(约300万条记录).我的样本记录看起来像,
{ "_id" = ObjectId("50731xxxxxxxxxxxxxxxxxxxx"),
"source_references" : [
"_id" : ObjectId("5045xxxxxxxxxxxxxx"),
"name" : "xxx",
"key" : 123
]
}
Run Code Online (Sandbox Code Playgroud)
我在集合中有很多重复记录source_references.key.(重复我的意思是,source_references.key不是_id).
我想删除基于的重复记录source_references.key,我正在考虑编写一些PHP代码来遍历每个记录并删除记录(如果存在).
有没有办法删除Mongo Internal命令行中的重复项?
我知道Gradle很强大,我想管理用于开发/生产Google Maps的API密钥
目前我总是需要手动注释一行并取消注释另一行以使其工作.有没有办法在Gradle中自动执行一些自定义发布配置?
<!-- MapView v2 API -->
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_DEV_KEY]" />
<!-- PROD
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_PROD_KEY]" />
-->
Run Code Online (Sandbox Code Playgroud)