Java 是否有任何方法可以提高此代码段的效率?
我正在编写一些代码,其中有这个代码段Java 是否有任何方法可以提高此代码段的效率?,java,loops,Java,Loops,我正在编写一些代码,其中有这个代码段 { user = "B"; indice = 21; switch (user) { case "A": A[indice - 1] = "X"; break; case "B": B[indice - 1] = "X"; break; case "C": C[in
{
user = "B";
indice = 21;
switch (user) {
case "A":
A[indice - 1] = "X";
break;
case "B":
B[indice - 1] = "X";
break;
case "C":
C[indice - 1] = "X";
break;
}
}
我想知道是否有一种可能的方法可以使这段代码更有效,这样我就不必重写它X amount次,也可以有更多的值比我设置的交换机的amount次,任何帮助都会有很多建议都会有很大帮助创建映射
,放置数组a
,B
和C
,然后使用此代码:
Map<String,String[]> arrayByName = new HashMap<String,String[]>();
arrayByName.put("A", A);
arrayByName.put("B", B);
arrayByName.put("C", C);
...
arrayByName.get(user)[indice-1] = "X";
Map arrayByName=newhashmap();
arrayByName.put(“A”,A);
arrayByName.put(“B”,B);
arrayByName.put(“C”,C);
...
arrayByName.get(用户)[indice-1]=“X”;
如果开关的大小写总是连续的(例如,“A”、“B”、“C”
),并且总是单个字符,那么您可以按照
String[][] master = {A, B, C};
...
master[user.charAt(0) - 'A'][indice - 1] = "X";
好吧,如果您主要关心的不是性能,也许您可以尝试使用反射。我认为这里没有足够的信息。为了提高效率,有多种方法可以进行打包,但这样做需要我们了解A、B和C数组,以及X的性质,以及用户值“B”和数组B之间的对应关系是否可以以适合其用途的方式进行不同的表示。是的,通过反射,你可以动态获取对象的属性,然后你可以给它赋值谢谢!希望我能实现这个解决方案,非常感谢。如果效率更高,性能更好,这个方法比原来的解决方案慢得多。三项的HasMap比简单数组中的序列搜索慢。说到这里,最初的解决方案直接使用了数组,所以我认为不可能编写更好的代码。我不认为性能是我正在编写的代码的一个问题,因为我只是在学习,但为了按照我编写的方式来做,我必须有3个开关,所有开关都包含12个案例,我想也许有更好的方法来学习经验,谢谢你的建议!