JAVA在数组列表中查找字符串长度最多的字符串长度

JAVA在数组列表中查找字符串长度最多的字符串长度,java,arrays,spring,sorting,arraylist,Java,Arrays,Spring,Sorting,Arraylist,例如,假设我在拆分后得到以下数组 [你好,世界,什么,a,晴,天,现在是,日期是,2020年10月1日] 10个字符-2020年10月1日(我知道这是一个日期字段,在本例中,假装它是一个字符串) 5个字符-你好,世界 4个字符-什么,好,日期 3个字符-天,天 2个字符-它、是、是 1个字符-a 因此,在本例中,我希望得到4个字符和2个字符,因为它们都共享列表数组中的最高长度 非常感谢您的帮助。谢谢 您可以使用Java流库的groupingBy收集器 String[] arr = new Str

例如,假设我在拆分后得到以下数组

[你好,世界,什么,a,晴,天,现在是,日期是,2020年10月1日]

10个字符-2020年10月1日(我知道这是一个日期字段,在本例中,假装它是一个字符串)

5个字符-你好,世界

4个字符-什么,好,日期

3个字符-天,天

2个字符-它、是、是

1个字符-a

因此,在本例中,我希望得到4个字符和2个字符,因为它们都共享列表数组中的最高长度


非常感谢您的帮助。谢谢

您可以使用Java流库的
groupingBy
收集器

String[] arr = new String[]{
        "Hello",
        "world",
        "what",
        "a",
        "fine",
        "day",
        "it",
        "is",
        "the",
        "date",
        "is",
        "01/10/2020"
};

List<Integer> maxRepeatingSizes =
    Arrays.stream(arr)
            .collect(Collectors.groupingBy(
                String::length,
                Collectors.counting()
            )).entrySet()
            .stream()
            .collect(
                    Collectors.groupingBy(
                            Map.Entry::getValue,
                            Collectors.mapping(
                                Map.Entry::getKey,
                                Collectors.toList()
                            )
                    )
            ).entrySet()
            .stream()
            .max(
                    Map.Entry.comparingByKey()
            ).get()
            .getValue();
String[]arr=新字符串[]{
“你好”,
“世界”,
“什么”,
“a”,
“好”,
“一天”,
“它”,
“是”,
",,
“日期”,
“是”,
"01/10/2020"
};
列出最大重复大小=
Arrays.stream(arr)
.collect(收集器.groupingBy(
字符串::长度,
3.计数()
)).entrySet()
.stream()
.收集(
收集者分组(
Map.Entry::getValue,
图(
Map.Entry::getKey,
收集者
)
)
).entrySet()
.stream()
麦克斯先生(
Map.Entry.comparingByKey()
).get()
.getValue();
首先,使用字符串的长度作为键,计数作为值对数组进行分组。 接下来,长度和计数的映射被反转,以获得计数的映射和该计数的长度列表。
然后,通过根据键对映射进行排序来获取最大重复值

我投票结束这个问题,因为看一看所有字符串计数的Hashmap。或HashMap,其中使用字符串的长度作为键,并在值中计数。