繁体   English   中英

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

[英]What is the efficient way to compare a ArrayList of String in 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 通过避免自动装箱,您应该会看到一些性能提升

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM