У овом програму ћете научити да сортирате попис прилагођених објеката према задатом својству у Јави.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:
- Јава класа и објекти
- Класа Јава АрраиЛист
Пример: Сортирај листу низова прилагођених објеката по својству
import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )
Оутпут
А Аа БКСЗ
У горе наведеном програму дефинисали смо CustomObject
класу са String
својством цустомПроперти.
Такође смо додали конструктор који иницијализује својство и геттер функцију getCustomProperty()
која враћа цустомПроперти.
У main()
методи смо креирали листу низова пописа прилагођених објеката, иницијализованих са 5 објеката.
За сортирање листе са датим својством користимо sort()
методу листе . sort()
Метод узима листу да се сортирају (коначна сортирана листа је иста) и comparator
.
У нашем случају, упоређивач је ламбда која
- узима два објекта са листе о1 и о2,
- упоређује цустомПроперти два објекта користећи
compareTo()
методу, - и на крају враћа позитиван број ако је својство о1 веће од о2, негативно ако је својство о1 мање од о2 и нула ако су једнаке.
На основу овога, листа се сортира на основу најмање својства до највеће и чува назад на листи.