Android中的列表:重命名重复的项目

时间:2016-08-29 05:37:11

标签: java android

我想按如下方式创建列表:

  • 列表项
  • 列表项-1
  • 列表项-2
  • 列表myitem
  • 列表myItem-1

如上所述 list-item ,如果项目的名称在下一行中相同,那么它将添加后缀1

enter image description here

像这样 做到了这一点 enter image description here

2 个答案:

答案 0 :(得分:1)

好的,所以你想问一下如何实现它。我能想到的最简单的解决方案是使用bool nextStep = true; for (int x = 0; x < width && nextStep; x++) { for (int y = 0; y < height && nextStep; y++) { nextStep = IsBreakConditionFalse(x, y); } } 来跟踪项目名称。您的代码看起来有点像这样:

Map<String, Int>

显示列表项名称时,您将执行以下操作:

final Map<String, Integer> listNameMap = new HashMap<String, Integer>();

答案 1 :(得分:1)

我已尝试过样本数据,以下解决方案对我有用。但也可以提供更高效的解决方案。该解决方案不需要订购数据。

List<String> parent =new  ArrayList<String>();

    parent.add("R");
    parent.add("I");
    parent.add("S");

    parent.add("R");
    parent.add("I");
    parent.add("S");
    parent.add("R");
    parent.add("I");
    parent.add("S");
    parent.add("R");
    parent.add("R");
    parent.add("I");

    HashSet<String> set = new HashSet<>(parent);
    ArrayList<String> valuesList = new ArrayList<>();
    valuesList .addAll(set);



    Log.d("ValueListWithoutDuplicates",valuesList.size()+"");
    int counter = 0;
    for(int i=0;i<valuesList.size();i++){
        for(int j=0;j<parent.size();j++){
            if(valuesList.get(i).equals(parent.get(j))){
                if(counter==0){
                    counter++;
                }else {
                    parent.set(j,parent.get(j)+String.valueOf(counter));
                    counter++;
                }
            }
        }


        counter=0;
    }

   for(int i=0;i<parent.size();i++){
       Log.d("final value",parent.get(i)+"");
   }