gpt4 book ai didi

java - TIntObjectHashMap - 获取给定值的键

转载 作者:行者123 更新时间:2023-12-01 12:28:43 24 4
gpt4 key购买 nike

如何从 Trove TIntObjectHashMap 获取映射中存在并已找到的值的键?

if(map.containsValue(source)) {
for (Entry<Integer, String> entry : map.entrySet()) { // entrySet() is not recognized by Trove? and i can not find any corresponding method ??
if (entry.getValue().equals(source)) {
entry.getKey();
}
}
}

最佳答案

我会做这样的事情:

TIntObjectMap<String> map = new TIntObjectHashMap<>();
map.put( 1, "a" );
map.put( 2, "b" );

AtomicInteger found = new AtomicInteger( -1 );
map.forEachEntry( new TIntObjectProcedure<String>() {
@Override
public boolean execute( int key, String value ) {
if ( value.equals( "a" ) ) {
found.set( key );
return false;
}
return true;
}
} );
System.out.println( "Found: " + found.get() );

要记住的事情:

  1. 显然可能有多个键具有相同的值。
  2. forEach* 方法是遍历 Trove 集合的最有效方法。
  3. 如果对象分配对您来说是一个性能问题,您可以重复使用这些过程。
  4. 如果“-1”(或其他任何值)是 map 的有效键,您可以使用另一个 AtomicBoolean 来指示是否找到该值。

关于java - TIntObjectHashMap - 获取给定值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com