java - 哪个更好?

标签 java android performance

我需要维护一个列表,其中包含两个字符串类型的值 say v1,v2 对于每个键 say k。 什么是更好的选择

  1. Hashmap 的值包含包含 v1 和 v2 的字符串,并在选择后使用 split() 检索正​​确的值。
  2. Hashmap 的值包含两个字符串变量的数组

我正在创建一个 Android 应用程序,所以只关心性能。在第二种情况下,我可以直接访问,但每个值都将包含另一个数组(我不知道,但它看起来很复杂),而在第一种情况下,它将在每次访问时使用 split 函数,如 v.split(",")[0 ]

请指导我。

Map<String,String[]> listMap= new HashMap<String, String[]>();
Map<String,String> listMap1= new HashMap<String, String>();;

for (int i = 1; i < tl.getChildCount(); i++) {
    TableRow row = (TableRow) tl.getChildAt(i);
    COLOR_TABLE clr = (COLOR_TABLE) row.getTag();

    if (clr == COLOR_TABLE.green) {
        //comp
        String x1=listMap1.get( ((TextView) row.getChildAt(0)).getText());
        String x2=listMap.get( ((TextView) row.getChildAt(0)).getText());
        // now i have to add two string values in a list seperately
    }
}

最佳答案

永远不要滥用字符串!它有时可能很慢,它们不是为此目的而制作的。

如果您想更加面向对象,可以使用通用 Pair 类:

public class Pair<A, B> {

  public A first;
  public B second;

  public Pair(A first, B second) {
    this.first = first;
    this.second = second;
  } 
}

当然你可以做得更好,使用访问器等等。

关于java - 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044584/

相关文章:

asp.net - Java 和 tomcat 与 ASP.NET 和 IIS

java - 在方法中使用单个临时变量有好处吗?

Java套接字端口号自行更改

java - 'Adding items to Enumerator ' 方法的替代方案?

java - 制作异步 HTTPGet 类

java - 在 Java 接口(interface)中添加新方法,因此它涉及对继承类的最小更改

java - 调用服务时 Android 应用程序强制关闭

android - Kotlin:如何访问自定义 View 的属性

android - 如何在SQL中搜索字符串中的字母

performance - OAuth 性能