JAVA在数组列表中查找字符串长度最多的字符串长度
例如,假设我在拆分后得到以下数组 [你好,世界,什么,a,晴,天,现在是,日期是,2020年10月1日] 10个字符-2020年10月1日(我知道这是一个日期字段,在本例中,假装它是一个字符串) 5个字符-你好,世界 4个字符-什么,好,日期 3个字符-天,天 2个字符-它、是、是 1个字符-a 因此,在本例中,我希望得到4个字符和2个字符,因为它们都共享列表数组中的最高长度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
非常感谢您的帮助。谢谢 您可以使用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,其中使用字符串的长度作为键,并在值中计数。