Предположим, что если у вас есть список лиц
List<Person> persons = new ArrayList<Person>();
, то сначала сгруппируйте их по городам, а затем получите запись с максимальными значениями в списке max
, которая вернет Optional
из Entry
так что я не усложню, я просто использую HashMap
для сохранения результата, если он присутствует в необязательном порядке, иначе вернусь пустой Map
Map<String, List<Person>> resultMap = new HashMap<>();
persons.stream()
.collect(Collectors.groupingBy(Person::getCity)) //group by city gives Map<String,List<Person>>
.entrySet()
.stream()
.max(Comparator.comparingInt(value->value.getValue().size())) // return the Optional<Entry<String, List<Person>>>
.ifPresent(entry->resultMap.put(entry.getKey(),entry.getValue()));
//finally return resultMap
"Запуск без отладки" делает это, но я думаю, вы все равно хотите отладить :)
Добавьте точку останова непосредственно перед завершением работы приложения.
Вы можете разместить Console.ReadLine в конце программы. Это заставит программу ждать ввода символа новой строки. Или вы можете разместить точку останова в конце пробрама.
Console.ReadKey () должна это сделать. Он приостановит выполнение вашей программы до тех пор, пока на клавиатуре не будет нажата какая-либо клавиша.
да, поскольку @matthew сказал, что Console.ReadKey () будет ждать вашего ввода после выполнения программы, но вы можете использовать Console.ReadLine (), который завершится только при нажатии клавиши
void main()
{
Console.WriteLine("Hello World!"); //:)
Console.ReadLine();//this will do the trick.
}