Kotlin集合

import kotlin.math.abs

class DemoCollections {
}

val systemUsers:MutableList<Int> = mutableListOf(1,2,3)
val sudoers:List<Int> = systemUsers

fun addSystemUser(newUser:Int)
{
    systemUsers.add(newUser)
}
fun getSysSudoers():List<Int>
{
    return sudoers
}
val openIssues:MutableSet<String> = mutableSetOf("uniqueDescr1", "uniqueDescr2", "uniqueDescr3")
fun addIssue(uniqueDesc:String):Boolean
{
    return openIssues.add(uniqueDesc)
}
fun getStatusLog(isAdded:Boolean):String
{
    return if(isAdded) "registered correctly." else "marked as duplicate and rejected."
}
const val POINTS_X_PASS:Int = 15
val EZPassAccounts:MutableMap<Int,Int> = mutableMapOf(1 to 100,2 to 100,3 to 100)
val EZPassReport:Map<Int,Int> = EZPassAccounts
fun updatePointsCredit(accountId:Int)
{
    if(EZPassAccounts.containsKey(accountId))
    {
        println("Updating $accountId")
        EZPassAccounts[accountId] = EZPassAccounts.getValue(accountId) + POINTS_X_PASS
    }else
    {
        println("Error:Trying to update a non-existing account (id: $accountId)")
    }
}
fun accountsReport()
{
    println("EZ-Pass report:")
    EZPassReport.forEach{
        k, v -> println("ID $k: credit $v")
    }
}
data class Person(val name:String,val city:String,val phone:String)
val people = listOf(
    Person("John","Boston","+1-888-123456"),
    Person("Sarah","Munich","+49-777-789123"),
    Person("Svyatoslav","Saint-Petersburg","+7-999-456789"),
    Person("Vasilisa","Saint-Petersburg","+7-999-123456"),
    )
fun main()
{
    val map = mutableMapOf<String,Int?>()
    println(map.getOrElse("x"){1})
    map["x"] = 3
    println(map.getOrElse("x"){1})
    map["x"] = null
    println(map.getOrElse("x"){1})

    val list = listOf(0,10,20)
    println(list.getOrElse(1){42})
    println(list.getOrElse(10){42})
//    val A = listOf("a","b","c")
//    val B = listOf(1,2,3,4)
//    val resultPairs = A zip B
//    val resultReduce = A.zip(B)
//
//    println("resultPairs: $resultPairs resultReduce:$resultReduce")

//    val map = mapOf("key" to 42,"key1" to 11)
//
//    val value1 = map["key"]
//    val value2 = map["key2"]
//    val value3:Int = map.getValue("key")
//    println("value1:$value1 value2:$value2 value3:$value3")
//
//
//    val mapWithDefault = map.withDefault { k->k.length }
//    println("mapWithDefault $mapWithDefault")
//
//
//    try {
//        map.getValue("anotherkey")
//    } catch (e: Exception) {
//        TODO("Not yet implemented")
//    }

//    val shuffled = listOf(5,4,2,1,3,-10)
//    val natural = shuffled.sorted()
//    val inverted = shuffled.sortedBy{ -it}
//    val descending = shuffled.sortedDescending()
//    val descendingBy = shuffled.sortedByDescending{ abs(it) }
//
//    println(natural)
//    println(inverted)
//    println(descending)
//    println(descendingBy)
//    val numbers = listOf(1,2,3)
//    val empty = emptyList<Int>()
//    val only = listOf(3)
//
//    println("Numbers: $numbers,min=${numbers.minOrNull()} max=${numbers.maxOrNull()}")
//    println("Empty: $empty,min=${empty.minOrNull()} max=${empty.maxOrNull()}")
//    println("Only: $only,min=${only.minOrNull()} max=${only.maxOrNull()}")
//    val fruitsBag = listOf("apple","orange","banana","grapes")
//    val clothesBag = listOf("shirts","pants","jeans")
//    val cart = listOf(fruitsBag,clothesBag)
//    val mapBag = cart.map{it}
//    val flatMapBag = cart.flatMap { it }.sorted()
//    println(mapBag)
//    println(flatMapBag)
//    val numbers = listOf(1,-2,3,-4,5,-6)
//    val evenOdd = numbers.partition { it % 2 == 0 }
//    val (positives,negatives) = numbers.partition { it > 0 }
//
//    println(evenOdd)
//    println(positives)
//    println(negatives)
//    val phoneBook = people.associateBy { it.phone }
//    val cityBook = people.associateBy (Person::phone,Person::city)
//    val peopleCities =  people.groupBy(Person::city,Person::name)
//    val lastPersonCity = people.associateBy(Person::city,Person::name)
//    println(phoneBook)
//    println(cityBook)
//    println(peopleCities)
//    println(lastPersonCity)


//    val totalCount = numbers.count()
//    val evenCount = numbers.count{it %2 == 0}
//    println(totalCount)
//    println(evenCount)
//    val words = listOf("foo","bar","baz","faz")
//    val empty = emptyList<String>()
//    val first = empty.firstOrNull()
//    val last = empty.lastOrNull()
//
//    val firstF = words.firstOrNull{it.startsWith('f')}
//    val firstZ = words.firstOrNull{it.startsWith('z')}
//    val lastF = words.lastOrNull{it.startsWith('f')}
//    val lastZ = words.lastOrNull{it.startsWith('z')}
//
//    println(first)
//    println(last)
//    println(firstF)
//    println(firstZ)
//    println(lastF)
//    println(lastZ)

//    val first = numbers.first()
//    val last = numbers.last()
//
//    val firstEven = numbers.first{it %2 == 0}
//    val lastOdd = numbers.last{it%2 != 0}
//    println(firstEven)
//    println(lastOdd)
//    val words = listOf("Lets","find","something","in","collection","somehow")
//    val first = words.find{it.startsWith("some")}
//    val last = words.findLast { it.startsWith("some") }
//    val nothing = words.find{it.contains("nothing")}
//    println(first)
//    println(last)
//    println(nothing)

//    val anyNegative = numbers.any{ it < 0}
//    val anyGT6 = numbers.any{ it > 6}
//    println(anyNegative)
//    println(anyGT6)
//
//    val allEven = numbers.all{it %2 == 0}
//    val allLess6 = numbers.all{it <6}
//    println(allEven)
//    println(allLess6)
//
//    val allEven1 = numbers.none{it %2 == 1}
//    val allLess1 = numbers.none{it > 6}
//    println(allEven1)
//    println(allLess1)


//    val doubled = numbers.map{x -> x*2}
//    val tripled = numbers.map{ it*3}
//    println(doubled)
//    println(tripled)
//    val positives = numbers.filter{ x -> x>0}
//    val negatives = numbers.filter{it < 0}
//    println(positives)
//    println(negatives)

//    accountsReport()
//    updatePointsCredit(1)
//    updatePointsCredit(1)
//    updatePointsCredit(5)
//    accountsReport()
//    val aNewIssue:String = "uniqueDescr4"
//    val anIssueAlreadyIn:String = "uniqueDescr2"
//
//    println("Issue $aNewIssue ${getStatusLog(addIssue(aNewIssue))}")
//    println("Issue $anIssueAlreadyIn ${getStatusLog(addIssue(anIssueAlreadyIn))}")

//    addSystemUser(4)
//    println("Tot sudoers:${getSysSudoers().size}")
//    getSysSudoers().forEach{
//        i -> println("Some useful info on user $i")
//    }
}

猜你喜欢

转载自blog.csdn.net/zhuziying99/article/details/132138861