투케이2K

334. (java/자바) [유틸 파일] : getSubList : List 배열 부분 데이터 반환 수행 본문

Java

334. (java/자바) [유틸 파일] : getSubList : List 배열 부분 데이터 반환 수행

투케이2K 2023. 7. 1. 11:58

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

 

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getSubList : List 배열 부분 데이터 반환 수행
    // -----------------------------------------------------------------------------------------
    public static ArrayList getSubList(ArrayList list, int start, int end){

        /**
         * // -----------------------------------------
         * [getSubList 메소드 설명]
         * // -----------------------------------------
         * 1. List 배열 부분 데이터 반환 수행
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * ArrayList list = new ArrayList();
         * list.add(0); // [0]
         * list.add(1); // [1]
         * list.add(2); // [2]
         * list.add(3); // [3]
         * list.add(4); // [4]
         * list.add(5); // [5]
         *
         * C_Util.getSubList(list, 1, 3); // [1부터 3까지 반환]
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         *
         * [1, 2, 3]
         * // -----------------------------------------
         * */


        // [리턴 변수 선언]
        ArrayList returnData = null;
        String M_LOG = "";


        // [로직 처리 실시]
        try {

            if (list != null && list.size()>0 && list.isEmpty() == false){

                if (start < 0 || end < 0){ // [음수 값 체크]
                    M_LOG = "[ERROR] : Range Check Error (start or end < 0)";
                }
                else {

                    M_LOG = "SUCCESS : ArrayList Sub Data";

                    if (end >= start){ // [end >= start 크기 비교]

                        returnData = new ArrayList();

                        if (end >= (list.size()-1)){ // [end >= list size 크기 비교 / 배열 사이즈 보다 거나 같은 경우]

                            for (int i=0; i<list.size(); i++){

                                try {
                                    if (i >= start){
                                        returnData.add(list.get(i));
                                    }
                                }
                                catch (Exception e){}

                            }

                        }
                        else { // [배열 사이즈 보다 작은 경우]

                            for (int i=0; i<list.size(); i++){

                                try {
                                    if (i >= start && i <= end){
                                        returnData.add(list.get(i));
                                    }
                                }
                                catch (Exception e){}

                            }

                        }

                    }
                    else {
                        M_LOG = "[ERROR] : Range Check Error (end >= start / false)";
                    }

                }

            }
            else {
                M_LOG = "[ERROR] : Input List Is Null";
            }

        }
        catch (Exception e){
            e.printStackTrace();
            M_LOG = "[EXCEPTION] : " + String.valueOf(e.getMessage());
        }


        // [로그 출력 실시]
        //*
        // ===============================================================
        S_Log._D_("List 배열 부분 데이터 반환 수행", new String[]{
                "INPUT [LIST] :: " + String.valueOf(list),
                "INPUT [RANGE] :: " + String.valueOf(start) + " ~ " + String.valueOf(end),
                "M_LOG :: " + String.valueOf(M_LOG),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [리턴 반환 실시]
        return returnData;
    }

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Util.getSubList(C_Util.java:5742)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: List 배열 부분 데이터 반환 수행]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [LIST] :: [0, 1, 2, 3, 4, 5]]
I/: ----------------------------------------------------
I/: [LOG :: INPUT [RANGE] :: 1 ~ 3]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: SUCCESS : ArrayList Sub Data]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: [1, 2, 3]]
D///===========//: ================================================

 

반응형
Comments