그냥 List를 쓰면 더 편하지만

 

가끔 배열을 사용해야할때가 있다. 이번에 프로젝트를 하면서 문자열을 ,로 split하여

 

갖고온 데이터를 배열에 넣어서 합쳐야할 상황이 있었다.

 

그래서 배열을 하나로 합치는 System.arraycopy를 포스팅합니다.

 

 //영업부서 지원부서번호 다 가져옴
ArrayList<Map<String, Object>> getDeptList = (ArrayList<Map<String, Object>>) workEvaluationDAO.getTargetDeptList(getDept);

String[] strArr = ((String) getDeptList.get(0).get("target_seq_array")).split(",");
String[] strArr2 = ((String) getDeptList.get(1).get("target_seq_array")).split(",");
String[] strAdd = new String[strArr.length+strArr2.length];

System.arraycopy(strArr, 0, strAdd, 0, strArr.length);
System.arraycopy(strArr2, 0, strAdd, strArr.length, strArr2.length);

String temp = "AND (";

for(int i=0; i<strAdd.length; i++) {
    if(i!=strAdd.length-1) {
        temp += " AA.dept_seq = "+strAdd[i] + " or ";
    }else {
        temp += " AA.dept_seq = "+strAdd[i];
    }
}

temp += ")";

 

두개의 상위부서에있는 하위 부서들의 번호를 다 가져오고 이를 하나의 배열로 만드는 작업이었다.

 

그리고 그 하위 부서들의 번호를 가지고 동적 쿼리에 적용했었다.(좋지 않은 방법이긴 하지만 떠오른는 방법이 없었다...)

 

System.arraycopy는 자바 배열의 갑승ㄹ 복사할 경우 사용한다.

 

형식 : arraycopy(Object arr, int arrStart, object resultArr, int resultStart, length)

 

파라미터 :

    arr = 복사하고자 하는 배열

    arrStart = arr의 복사를 어디서부터 할것인지

    resultArr = 복사한 배열을 넣을 배열

    resultStart = resultArr의 어디부터 넣을것인지

    length = 복사하고자 하는 배열의 요소 갯수

'Java' 카테고리의 다른 글

[Java] 페이지네이션 함수 만들기  (0) 2022.09.09
[Java]Lucy-xss-filter-servlet 적용하기  (0) 2022.08.02
[Java] ModelAndView와 String 리턴  (0) 2020.06.16

+ Recent posts