HashMap有两个重要的属性:size和load factor.我浏览了Java文档,它说的0.75f是初始加载因子.但我找不到它的实际用途.
有人可以描述我们需要设置负载因子的不同场景以及针对不同情况的一些样本理想值吗?
在ifJava语句中,如何检查对象是否存在于一组项目中.例如,在这种情况下,我需要验证水果是苹果,橙子还是香蕉.
if (fruitname in ["APPLE", "ORANGES", "GRAPES"]) {
//Do something
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常微不足道的事情,但我无法找到一个简短而简洁的方法来实现这一目标.
简而言之,如果你想在Java中编写一个例如常量的映射,例如Python和Javascript,你会把它写成文字,
T<String,String> CONSTANTS =
{
"CONSTANT_NAME_0": CONSTANT_VALUE_0 ,
"CONSTANT_NAME_1": CONSTANT_VALUE_1 ,
"CONSTANT_NAME_2": CONSTANT_VALUE_2 ,
//...
} ;
Run Code Online (Sandbox Code Playgroud)
是否有一个Class或任何预设Object可用于编写这样的数据结构?
Java 9附带了用于创建不可变列表的便捷工厂方法.最后,列表创建非常简单:
List<String> list = List.of("foo", "bar");
Run Code Online (Sandbox Code Playgroud)
但是这个方法有12个重载版本,11个有0到10个元素,另一个有var args.
static <E> List<E> of(E... elements)
Run Code Online (Sandbox Code Playgroud)
同样是与案件Set和Map.
由于存在var args方法,有多少11种方法有什么意义呢?
我认为var-args创建一个数组,所以其他11个方法可以跳过创建一个额外的对象,在大多数情况下会有0-10个元素.还有其他原因吗?
如何在java中创建Set,然后在构造时向其中添加对象.我想做的事情如下:
testCollision(getObject(), new HashSet<MazeState>(){add(thing);});
Run Code Online (Sandbox Code Playgroud)
但这似乎并不合适.
在Java中,如何创建在构造时填充的最终Set?我想做类似以下的事情:
static final Set<Integer> NECESSARY_PERMISSIONS
= new HashSet<Integer>([1,2,3,6]);
Run Code Online (Sandbox Code Playgroud)
但我不知道Java中的正确语法.
当我们使用数组创建列表时java.util.Arrays.asList(),列表是不可变的.我很想知道为什么我们想要创建一个不可变列表,当List(Set或Map)的基本目的是具有动态大小并且能够随意添加,删除元素时.当我们需要一个固定大小的数据结构,我们去阵列,当我们需要一个动态的数据结构,我们去List或Set或Map等.那么,什么是具有不可变列表的目的是什么?我在完成任务时遇到了这个问题.
是否有更简化的方法来执行以下操作?
Map<String, String> map = new HashMap<String, String>();
map.put("a", "apple");
map.put("b", "bear");
map.put("c", "cat");
Run Code Online (Sandbox Code Playgroud)
我正在寻找更接近这个的东西.
Map<String, String> map = MapBuilder.build("a", "apple", "b", "bear", "c", "cat");
Run Code Online (Sandbox Code Playgroud) 是否有一种方便的方法来初始化Set等价于Collections.singleton,它返回一个可变的Set而不是一个不可变的?
我想问 - 有什么区别
Set<CurrencyType> set1 = new HashSet<>() {{
add("a");
add("b");
add("c");
}}
Run Code Online (Sandbox Code Playgroud)
和
Set<CurrencyType> set2 = Set.of(
"a",
"b",
"c"
)
Run Code Online (Sandbox Code Playgroud)
在名为 @Test 的调试模式下MySillyTest(这个名称很快就会回来),我可以看到它set1是 的一个实例MySillyTest$1,但我认为它只是一个HashSet. set2另一方面是 的一个实例ImmutableCollections$SetN。这两者之间真正的区别是什么?java.util.Set使用什么实现Set.of()?这两者之间有性能/内存使用/CPU 使用差异吗?
如果我想看看一个子串是否等于其他几个子串中的任何一个.如果不将每个案例放在一起,可以做到这一点:
目前的方式:
if ( substr.equals("move") || substr.equals("mv") || substr.equals("mov") ){…}
Run Code Online (Sandbox Code Playgroud)
更短的版本(不工作):
if ( substr.equals("move" || "mv" || "mov") )
Run Code Online (Sandbox Code Playgroud) java ×11
collections ×6
map ×2
set ×2
arrays ×1
class ×1
declaration ×1
hashmap ×1
hashset ×1
java-9 ×1
list ×1
literals ×1
load-factor ×1
object ×1