加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何查找重复的行并显示它们前面的重复次数

发布时间:2020-12-15 04:49:59 所属栏目:Java 来源:网络整理
导读:是的,这是一个微不足道的问题,但我没有找到重复的问题.目前,从这个集合(ArrayList): JavaC#JavaPython 我必须得到这个:(也就是说,每个单词都会遇到重复的数量) Java 2C# 1Java 2Python 1 目前我正在使用Map,但它会删除重复项,这就是我得到的. Java 2C# 1Pyt
是的,这是一个微不足道的问题,但我没有找到重复的问题.目前,从这个集合(ArrayList):

Java
C#
Java
Python

我必须得到这个:(也就是说,每个单词都会遇到重复的数量)

Java 2
C# 1
Java 2
Python 1

目前我正在使用Map,但它会删除重复项,这就是我得到的.

Java 2
C# 1
Python 1

这是我的代码:

Map<String,Integer> map = new HashMap<>();
        for (String temp : array) {
            Integer count = map.get(temp);
            if (count != null){
                map.put(temp,count + 1);
            }
            else {
                map.put(temp,1);
            }
        }

我有一个想法,将数据写入另一个列表,通过此列表比较“父”列表的每个元素与新列表的所有元素.像这样的东西:

List<String> resultList = new ArrayList<>();
List<String> mainList = new ArrayList<>();

    for (int i = 0; i < arrayList.size(); i++) {
        mainList.add(i,arrayList.get(i));
    }

    for (int i = 0; i < mainList.size(); i++) {
            int x = 1;
        for (String anArray : arrayList) {
            if (mainList.get(i).equals(anArray)) {
                resultList.add(i,mainList.get(i) + " "+ x++);
            }
        }
    }
    resultList.forEach(System.out::println);

哪个可以正常工作,但在遇到重复时也会创建一个额外的行.

Java 2
C# 1
Java 2
Python 1
Java 1
Java 1

在使用List的实现中,我遇到的问题是它将当前元素增加1,但同时又创建了另一个元素.

伙计们,我会很高兴能引导我解决问题的任何想法或线索!

UPD:这个问题的所有答案都是神圣的.感谢你们!在不冒犯别人的情况下,我觉得选择正确的答案会让人觉得尴尬.

解决方法

您可以在迭代列表时使用 Collections.frequency来打印列表中每个单词的出现次数:

public static void main(String[] args) {
    List<String> list = Arrays.asList("Java","C#","Java","Python");
    list.forEach( s -> System.out.println(s + " " + Collections.frequency(list,s)));
}

输出:

Java 2
C# 1
Java 2
Python 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读