java - 在android中比较String的ArrayList的有效方法是什么

标签 java android

我想比较一个 arraylist 的每一项与另一个 arrayList 的项目似乎很慢。 如何加速这段代码。 我想要对每个字符串进行逐字符比较。

如果这里不需要任何循环,请建议我。

public static void FinalGroups(ArrayList<ArrayList<QuineMCCluskyModel>> Prime_Implicants,
                                   ArrayList<ArrayList<QuineMCCluskyModel>> FinalGRoupImplicants)
    {
        Integer count = 0;

        for (Integer i = 0; i < Prime_Implicants.size(); i++)
        {
            for (Integer j = 0; j < Prime_Implicants.get(i).size(); j++)
            {

                if (i + 1 < Prime_Implicants.size())

                    for (Integer L = 0; L < Prime_Implicants.get(i+1).size(); L++)
                    {
                        count = 0;
                        if (Prime_Implicants.get(i).size() > 0 && Prime_Implicants.get(i+1).size() > 0)
                        {
                            for (Integer k = 0; k < Prime_Implicants.get(i).get(j).Number.length()  ; k++)
                            {

                                if (Prime_Implicants.get(i).get(j).Number.charAt(k)
                                        != Prime_Implicants.get(i+1).get(L).Number.charAt(k))
                                {

                                    count++;
                                }

                            }
                            if (count == 1)
                            {
                                while (i + 1 > FinalGRoupImplicants.size())
                                    FinalGRoupImplicants.add(new ArrayList<QuineMCCluskyModel>());
                                QuineMCCluskyModel temp_model = new QuineMCCluskyModel();
                                temp_model.Number = "";
                                temp_model.HasUsed = false;
                                for (Integer k = 0; k < Prime_Implicants.get(i).get(j).Number.length()
                                     ; k++)
                                {

                                    if (Prime_Implicants.get(i).get(j).Number.charAt(k)
                                            == Prime_Implicants.get(i+1).get(L).Number.charAt(k))
                                    {
                                        temp_model.Number += Prime_Implicants.get(i).get(j).Number.charAt(k);
                                    }
                                    else
                                    {
                                        temp_model.Number += 'b';
                                    }


                                }

                                Prime_Implicants.get(i).get(j).HasUsed = true;
                                Prime_Implicants.get(i+1).get(L).HasUsed = true;
                            }


                        }
                    }
            }
        }

最佳答案

尝试使用 int 类型而不是 Integer。您应该会看到避免 Autoboxing 会带来一些性能提升。

关于java - 在android中比较String的ArrayList的有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671353/

相关文章:

java - 如何将布局放置在 android 屏幕键盘的正上方?

java - 我应该创建新类(class)还是使用现有类(class)

java - 如何在 Guice 中使用@SessionScoped

java - 在应用程序服务器中调用远程 Bean 与本地 Bean

java - 浏览按钮选择目录

android - 致命信号11

java - 使用 Hibernate 的错误 SchemaExport

android - 不显示带有响应的传入数据

android - 更新 appWidget 中的 textView android 无法正常工作

android - EditText,当转到多行时,搞乱了约束布局android