public class SortVO {
// 숫자 비교를 하기위해 int 가 아닌 Integer로 선언
Integer no;
String name;
public Integer getNo(){
return no;
}
public void setNo( Integer no ){
this.no = no;
}
public String getName(){
return name;
}
public void setName( String name ){
this.name = name;
}
}
public class LambdaSortingTest {
public static void main( String[] args ){
SortVO st1 = new SortVO();
SortVO st2 = new SortVO();
SortVO st3 = new SortVO();
SortVO st4 = new SortVO();
SortVO st5 = new SortVO();
SortVO st6 = new SortVO();
st1.setNo(111);
st2.setNo(212);
st3.setNo(3232);
st4.setNo(443);
st5.setNo(5);
st6.setNo(622);
List list = new ArrayList<>();
list.add(st1);
list.add(st2);
list.add(st3);
list.add(st4);
list.add(st5);
list.add(st6);
System.out.println("<< Integer List >>");
list = list.stream().sorted(( e1, e2 ) -> e1.getNo().compareTo(e2.getNo())).collect(Collectors.toList());
list.forEach(e -> System.out.println(e.getNo()));
//<< Integer List >>
//5
//111
//212
//443
//622
//3232
st1.setName("111");
st2.setName("212");
st3.setName("3232");
st4.setName("443");
st5.setName("5");
st6.setName("622");
List list2 = new ArrayList<>();
list2.add(st1);
list2.add(st2);
list2.add(st3);
list2.add(st4);
list2.add(st5);
list2.add(st6);
System.out.println("<< String List >>");
list2 = list2.stream().sorted(( e1, e2 ) -> e1.getName().compareTo(e2.getName())).collect(Collectors.toList());
list2.forEach(e -> System.out.println(e.getName()));
//<< String List >>
//111
//212
//3232
//443
//5
//622
//당연한 결과이지만 숫자와 문자는 Sorting 시 다른 결과가 나온다.
//하지만, 작업을 하다보면 실수를 할 수 있으니 sorting 후에 결과를 항상 확인해 보는 것이 필요하다.
}
}
댓글
댓글 쓰기