zoukankan      html  css  js  c++  java
  • [Kotlin] Generic Functions

    //vararg: just like ...args in js
    class Stack<T>(vararg val items: T) {
        
        val elements = items.toMutableList()
        
        fun push(element: T) {
            elements.add(element)
        }
        
        fun pop(): T? {
            if (!isEmpty()) {
                return elements.removeAt(elements.size - 1)
            }
            return null
        }
        
        fun isEmpty(): Boolean {
            return elements.isEmpty()
        }
    }
    
    fun <T> stackOf(vararg elements: T): Stack<T> {
        return Stack(*elements) // spread opeator *
    }
    
    
    fun main() {
        val stack = Stack(3,4,2,6)
        println(stack.pop())
        println(stack.pop())
        println(stack.pop())
        println(stack.pop())
        println(stack.pop()) // null
        
        val stack2 = stackOf("HI", "Hello", "Bye")
        
        for(i in 1..3) {
            println(stack2.pop())
        }
    }
  • 相关阅读:
    递归的初步应用
    最大公约数与最小公倍数(低效)
    进制转换
    凸多边形的面积问题
    单词替换
    DNA排序
    字符串排序
    倒三角形
    韩信点兵
    oracle
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13812594.html
Copyright © 2011-2022 走看看