gpt4 book ai didi

java - 在 switch 中使用数组作为 case 语句

转载 作者:IT老高 更新时间:2023-10-28 11:48:39 29 4
gpt4 key购买 nike

我正在尝试做这样的事情,即在 switch 语句中使用数组。在Java中可能吗?如果不是,请说明一个可能的解决方案。

boolean[] values = new boolean[4];

values[0] = true;
values[1] = false;
values[2] = false;
values[3] = true;

switch (values) {
case [true, false, true, false]:
break;
case [false, false, true, false]:
break;
default:
break;
}

最佳答案

@sᴜʀᴇsʜ ᴀᴛᴛᴀ 是对的。但我想补充一点。从 Java 7 开始,switch 语句支持字符串,所以你可以用它做点什么。 真的很脏,我不推荐,但这样可以:

boolean[] values = new boolean[4];

values[0] = true;
values[1] = false;
values[2] = false;
values[3] = true;

switch (Arrays.toString(values)) {
case "[true, false, true, false]":
break;
case "[false, false, true, false]":
break;
default:
break;
}

对于那些关心性能的人:你是对的,这不是 super 快。这将被编译成这样的:

String temp = Arrays.toString(values)
int hash = temp.hashCode();
switch (hash)
{
case 0x23fe8da: // Assume this is the hashCode for that
// original string, computed at compile-time
if (temp.equals("[true, false, true, false]"))
{

}
break;
case 0x281ddaa:
if (temp.equals("[false, false, true, false]"))
{

}
break;

default: break;
}

关于java - 在 switch 中使用数组作为 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659979/

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