首页 > 解决方案 > 如何使 systemprintln 语句仅打印 arraylist 值而不重复文本

问题描述

如何仅打印 arraylist 值而不重复突出显示的文本部分

参考了提供的解决方案,但看起来很复杂,请提供一个关于如何仅打印值的简单解决方案

import java.util.Arrays;

public class DuplicateNuminArray {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String progLanguages[] = {"Java", "Python", "C", "C++", "Java", "C"};


        for (int i = 0; i < progLanguages.length; i++) {
            for (int j = i+1; j < progLanguages.length; j++)
            {
                if(progLanguages[i].equals(progLanguages[j]))
                {   
                    System.out.println("The Duplicate string is :" +progLanguages[i]);

                }
            }

        }

    }

我希望打印 statemenet 仅打印如下重复字符串是:Java,C
而不是重复字符串是:Java 重复字符串是:C

标签: javaarraylistprintln

解决方案


您需要在数据结构中收集所有重复项(并保持唯一性)。一种这样的数据结构是集合类型Set。就像是,

String progLanguages[] = { "Java", "Python", "C", "C++", "Java", "C" };
Set<String> set = new LinkedHashSet<>();
for (int i = 0; i < progLanguages.length; i++) {
    for (int j = i + 1; j < progLanguages.length; j++) {
        if (progLanguages[i].equals(progLanguages[j])) {
            set.add(progLanguages[i]);
        }
    }
}
System.out.printf("The Duplicate string is: %s%n", set);

推荐阅读