LoginSignup
3
3

More than 5 years have passed since last update.

kotlinでHashMapの実装

Posted at

HashMap

HashMapをkotlinで実装した。
idがkeyで名前がvalue

maptest.kt

import java.util.Scanner
import java.util.InputMismatchException

var map = kotlin.collections.HashMap<Int , String>()

fun main(arg : Array<String>) {
    val input = Scanner(System.`in`)
    var i : Int
    try {
    loop@ while(true) {
            println("何をしますか?\n" +
                    "入力 =>1" + "表示=>2" + "探す=>3" + "削除=>4"+ "終了=>5")
            i = input.nextInt()
            when (i) {
                1 -> {
                    Scan()
                }
                2 -> {
                    println(map)
                }
                3 -> {
                    search()
                }
                4 -> {
                    delete()
                }
                5->{
                    break@loop
                }
            }
    }
    }catch(e : InputMismatchException){
        println("型が違います : " +e)
    }
}

map.kt
import java.util.*
val input = Scanner(System.`in`)

fun search(){
    val key : Int
    println("idを入力してください")
    try {
        key = input.nextInt()
        if (map.containsKey(key)) {
            println("$key =" + map.get(key))
        } else {
            println("そのidは存在しません")
        }
    }catch (e : InputMismatchException){
        println("型が違います : ")
    }
}
fun Scan(){
    println("名前を入力してください")
    val name =  input.next()
    println("idを入力してください")
    val key : Int = input.nextInt()
    try {
        if (map.containsKey(key)) {
            println("上書きしますか?\n" +
                    "はい=>1いいえ=>2")
            when (input.nextInt()) {
                1 -> {
                    map.put(key, name)
                }
                2 -> {
                }
            }
        } else {
            map.put(key, name)
        }
    }
    catch (e : InputMismatchException){
        println("型が違います : ")
    }
}
fun delete() {
    println("全削除=>1 1データ削除=>2 キャンセル=>3")
    try {
        when (input.nextInt()) {
            1 -> {
                map.clear()
            }
            2 -> {
                println("削除するidを入力してください")
                val keyid: Int = input.nextInt()
                map.remove(keyid)
            }
            3 -> {
            }
        }
    }catch (e : InputMismatchException){
        println("型が違います : ")
    }
}


名前を日本語で入力やリトライなどの実装はまたこんど。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3