데이터베이스에서 한번에 카테고리별로 받아와서
그것을 다시 여러개의 리스트로 쪼개야하는 상황이 생겼다...
구분자를 지정하면 리스트 속에 리스트가 들어가도록 만들어준다.
좀 더 스마트한 방법이 있을법한데, 아직 내 머리로는
조건문을 주고 비교해서 잘라오는 방법밖에는 잘 모르겠다...
데이터가 많아지면 최적화를 한다든지 구분자가 무엇인지 몰라도
구분자 파라메터 명만 알면 알아서 걸러서 가져온다든지 하는 기능은
어떻게 하면 좋을까?! ㅠㅠ
우선 까먹지 않도록 여기에 기록해둔다.
import java.util.ArrayList;
public class SplitArrayByParameter {
static ArrayList<Board> list;
public static void main(String ar[]){
System.out.println("START!");
init();
//구분자가 몇개인지 무엇인지 알아야함.
String[] gbns = {"all","osirase","event","update","mainte"};
ArrayList<ArrayList<Board>> lists = new ArrayList<ArrayList<Board>>();
for(int j=0;j<gbns.length;j++){
ArrayList<Board> tmpList = new ArrayList<Board>();
for(int i=0;i<list.size();i++){
if(list.get(i).getGbn().equals(gbns[j])){
tmpList.add(list.get(i));
}
}
lists.add(tmpList);
}
//잘 들어있는지 확인
for(ArrayList<Board> list:lists){
for(Board tmp :list){
System.out.println(tmp.getGbn() +" : " + tmp.getTitle());
}
}
}
public static void init(){
list = new ArrayList<Board>();
list.add(new Board("all", "1"));
list.add(new Board("all", "2"));
list.add(new Board("all", "3"));
list.add(new Board("all", "4"));
list.add(new Board("all", "5"));
list.add(new Board("osirase", "6"));
list.add(new Board("osirase", "7"));
list.add(new Board("osirase", "8"));
list.add(new Board("osirase", "9"));
list.add(new Board("osirase", "10"));
list.add(new Board("event", "11"));
list.add(new Board("event", "12"));
list.add(new Board("event", "13"));
list.add(new Board("event", "14"));
list.add(new Board("event", "15"));
list.add(new Board("update", "16"));
list.add(new Board("update", "17"));
list.add(new Board("update", "18"));
list.add(new Board("update", "19"));
list.add(new Board("update", "20"));
list.add(new Board("mainte", "21"));
list.add(new Board("mainte", "22"));
list.add(new Board("mainte", "23"));
list.add(new Board("mainte", "24"));
list.add(new Board("mainte", "25"));
}
public static class Board{
private String gbn;
private String title;
public Board(String gbn, String title){
this.gbn = gbn;
this.title = title;
}
public String getGbn() {
return gbn;
}
public void setGbn(String gbn) {
this.gbn = gbn;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}