kotlin.collections flaten() 사용 방법
flatten()
에function이 있습니다.공식 문서에는'제공된 컬렉션 그룹의 모든 컬렉션 그룹에서 모든 요소의 단일 목록을 되돌려줍니다'라고 기재되어 있다.
끼워 넣은 모음집 그룹을 평탄한 목록으로 변환하는 데 사용되는 function이다.
장면을 사용하기 위해 라벨 형식으로 매달 표시되는 데이터가 있기 때문에 편집, 총결산을 고려하여 이 데이터를 저장할 수 있다.
다음은 간단한 날짜 데이터의 예를 들어 플러그인 목록
flatten()
을 적용한 후 목록 구조가 어떻게 변화하는지 보여주는 견본이다.// 日付クラス
data class Date(val month: Int, val day: Int)
// 月ごとの日付リスト
val january: List<Date> = (1..31).map { Date(1, it) }
val february: List<Date> = (1..28).map { Date(2, it) }
val march: List<Date> = (1..31).map { Date(3, it) }
val april: List<Date> = (1..30).map { Date(4, it) }
val may: List<Date> = (1..31).map { Date(5, it) }
val june: List<Date> = (1..30).map { Date(6, it) }
val july: List<Date> = (1..31).map { Date(7, it) }
val august: List<Date> = (1..31).map { Date(8, it) }
val september: List<Date> = (1..30).map { Date(9, it) }
val october: List<Date> = (1..31).map { Date(10, it) }
val november: List<Date> = (1..30).map { Date(11, it) }
val december: List<Date> = (1..31).map { Date(12, it) }
// 月ごとの日付リストのリスト = 1年間の日付リスト
val annualDateList: List<List<Date>> = listOf(january, february, march, april, may, june, july, august, september, october, november, december)
/********** ネストされている日付データ **********/
println(annualDateList)
// => [[Date(month=1, day=1), Date(month=1, day=2), …, Date(month=1, day=31)], [Date(month=2, day=1), …, Date(month=12, day=31)]]
println("1年: ${annualDateList.size}ヶ月")
// => 1年: 12ヶ月
annualDateList.forEach { println("${it.first().month}月: ${it.size}日") }
// => 1月: 31日
// => 2月: 28日
// => …
// => 12月: 31日
/********** フラットな日付データ **********/
println(annualDateList.flatten())
// => [Date(month=1, day=1), Date(month=1, day=2), …, Date(month=1, day=31), Date(month=2, day=1), …, Date(month=12, day=31)]
// これは `annualDateList.flatMap { it }` と同じ
println("1年: ${annualDateList.flatten().size}日")
// => 1年: 365日
Reference
이 문제에 관하여(kotlin.collections flaten() 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tkhs0604/articles/b77970d0279d98텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)