像数组一样new Integer[]{ 1, 2, 3 }
,我可以只使用一行来创建和填充 TreeMap 吗?
// I want to use it in situations like this:
this.lookFor( new TreeMap( {...} ) );
有机会吗HashMap
?LinkedHashMap
大括号符号在
new Integer[]{ 1, 2, 3 }
是数组类型的特殊符号。
大括号符号在
new TreeMap( {...} )
不会编译。
大括号符号在
new TreeMap( ) {}
创建 的匿名子类TreeMap
。您可以做的是执行此操作,然后立即使用实例初始化程序将内容添加到Map
.
new TreeMap() {{this.put(1,2);}}
显然,使用适用于您的用例的类型。
这称为双括号初始化。
我这样做:
import java.util.*;
import java.util.Map.Entry;
import static java.util.Map.entry;
...
public class MyClass {
private static final SortedMap<String, String> MY_MAP = Stream.of(
entry("key1", "value1"),
entry("key2", "value2"),
...,
entry("keyN", "valueN")
).collect(toMap(
Entry::getKey,
Entry::getValue,
(v1, v2) -> v2,
() -> new TreeMap<>(String.CASE_INSENSITIVE_ORDER)
));
我认为您可以使用此示例代码
this.lookFor(new TreeMap<Object,Object>(){
@Override
public boolean isEmpty() {
/*
*some code
*/
}
});