Notice
Recent Posts
Recent Comments
Link
투케이2K
278. (kotlin/코틀린) [유틸 파일] listMapKeySort : List Map 형식 데이터 특정 key 값 기준 정렬 수행 본문
Kotlin
278. (kotlin/코틀린) [유틸 파일] listMapKeySort : List Map 형식 데이터 특정 key 값 기준 정렬 수행
투케이2K 2023. 4. 27. 21:45[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// ----------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] listMapKeySort : List Map 형식 데이터 특정 key 값 기준 정렬 수행
// ----------------------------------------------------------------------------------
fun listMapKeySort(listMap: List<Map<String, Any>>, key: String): List<Map<String, Any>> {
/**
* // -----------------------------------------
* [listMapKeySort 메소드 설명]
* // -----------------------------------------
* 1. List Map 형식 데이터 특정 key 값 기준 정렬 수행
* // -----------------------------------------
*
* // [유틸 파일 호출]
* C_Util.listMapKeySort(listMap, "step")
*
* // -----------------------------------------
* 3. 리턴 데이터 : 특정 key 값 기준으로 정렬된 데이터
*
* [{key_1=value_1, step=1}, {key_2=value_2, step=2}, {key_3=value_3, step=3}]
* // -----------------------------------------
*/
// [리턴 데이터 선언 실시]
var returnData: List<Map<String, Any>> = ArrayList()
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (listMap != null && listMap.size > 0 && listMap.toString().contains(key) == true) { // [널이 아니고, key 값을 포함하는 경우]
// [1]. [인풋 값 삽입 실시]
returnData = listMap
// [2]. [Collections 을 사용해서 List 배열 데이터 정렬 실시]
Collections.sort(returnData, object : Comparator<Map<String, Any>> {
override fun compare(a: Map<String, Any>, b: Map<String, Any>): Int {
// TODO [value 변수 선언]
var value_A = ""
var value_B = ""
try {
// TODO [value 기준 정렬]
value_A = a[key].toString() // [정렬하려는 key 지정]
value_B = b[key].toString() // [정렬하려는 key 지정]
} catch (e: Exception) {
e.printStackTrace()
}
// TODO [value 기준 정렬]
return if (C_Util.stringIsNumber(value_A) == true && C_Util.stringIsNumber(value_B) == true) {
Integer.compare(value_A.toInt(), value_B.toInt()) // [integer]
} else {
value_A.compareTo(value_B) // [string]
}
}
})
}
} catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력]
// ===============================================================
S_Log._D_("listMapKeySort :: List Map 형식 데이터 특정 key 값 기준 정렬 수행", arrayOf(
"INPUT [LIST] :: " + listMap.toString(),
"INPUT [KEY] :: $key",
"RETURN :: $returnData"
)
)
// ===============================================================
// [리턴 데이터 반환 실시]
return returnData
}
반응형
'Kotlin' 카테고리의 다른 글
Comments