java - 如何处理大量 if 语句

标签 java android performance if-statement

我需要用 768 个不同的元素创建一个 if-elseif 语句。

是否有可能减少写作的精力?我知道这是一个奇怪的问题,但我需要测试 768 条不同的消息。

所以问题到底是:

是否有一种简单的方法来进行大量 if 语句,或者我只需逐行键入所有行?

如果有任何不清楚的地方,请随时询问。

编辑:

private static final String TEST = "0 0 0 0 0 40 ";
private static final String TEST2 = "0 96 0 0 0 d6 ";
private static final String TEST3 = "1 28 0 0 1 68 ";
private static final String TEST4 = "2 07 0 0 2 47 ";
private static final String TEST5 = "2 be 0 0 2 fe ";

if (data.contains(TEST)){
        progress = 0;
} else if (data.contains(TEST2)) {
        progress = 20;
} else if (data.contains(TEST3)) {
        progress = 40;
} else if (data.contains(TEST4)) {
        progress = 70;
} else if (data.contains(TEST5)) {
        progress = 96;
}

编辑2:

这里有一些用于数学研究的示例数据:

00 00 00 00 00 40 00 00
00 00 00 00 00 40 00 00
00 01 00 00 00 41 00 00
00 02 00 00 00 42 00 00
00 03 00 00 00 43 00 00
00 04 00 00 00 44 00 00
00 05 00 00 00 45 00 00
00 06 00 00 00 46 00 00
00 07 00 00 00 47 00 00
00 08 00 00 00 48 00 00
.. .. .. .. .. .. .. .. 
01 00 00 00 01 40 00 00
.. .. .. .. .. .. .. .. 
02 00 00 00 02 40 00 00
.. .. .. .. .. .. .. ..
02 BF 00 00 02 FF 00 00

但有时在位置 7 上有另一个介于 20 和 61 之间的十六进制数字。这就是问题所在。

最佳答案

I need to make a if-elseif-statement with 768 different elements.

不,你没有。您在问题后面承认了这一点,当时您写道:

I need to test 768 different messages

这不需要“具有 768 个不同元素的 if-elseif 语句”。正如您所指出的,虽然这可能是解决问题的一种方法,但这并不是一个很好的解决方案。

Is there a easy way for mass if-statements or do I just have to type all line for line?

不要做其中任何一个。

第 1 步:在 HashMap<String, Integer> 中获取测试字符串(例如,从 XML 资源加载它们)。

第 2 步:迭代 keySet()其中HashMap ,并测试每个键。如果您有匹配项,请设置您的progress等于 HashMap 中的相应值,和break跳出迭代循环。

关于java - 如何处理大量 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530679/

相关文章:

java - Spring 请求将 URL 映射到一个 Controller

java - 如何从 Firebase Push Notification 获取数据并将其显示在您的 Android Activity 中?

java - 如何在改造中的url中添加带双引号的post查询参数字符串?

android - RxJava toList() 不触发 subscribe() 方法(使用 Room)

java - 为什么 StringBuilder 链接模式 sb.append(x).append(y) 比常规 sb.append(x) 快; sb.append(y)?

java - 我可以将 REST 请求转发到其他资源吗?

android - 如何获取谷歌地图的当前填充(Android API)

Java-将大量数据写入csv

angular - 当我将 SVG 放入 ngFor 时 Angular 2 中的性能问题

java - ArrayList 类型不匹配