Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A bimap (bidirectional map) implementation for Kotlin

License

NotificationsYou must be signed in to change notification settings

uchuhimo/kotlinx-bimap

Repository files navigation

Java 6+Maven metadata URLBintrayJitPackBuild Statuscodecovcodebeat badge

A bimap (bidirectional map) implementation for Kotlin.

Prerequisites

  • JDK 1.6 or higher

Interfaces and implementations

This library provides interfaces for read-only/mutable bimap:

InterfaceBasesImplementations
BiMapMapemptyBiMap,biMapOf,toBiMap
MutableBiMapMutableMap,BiMapmutableBiMapOf,toMutableBiMap

Operations

Create read-only bimap

  • Create an empty read-only bimap:

    val newBiMap= emptyBiMap()
  • Create a new read-only bimap from pairs:

    val newBiMap= biMapOf(1 to"1",2 to"2",3 to"3")
  • Create a new read-only bimap from map:

    val newBiMap=mapOf(1 to"1",2 to"2",3 to"3").toBiMap()

Create mutable bimap

  • Create an empty mutable bimap:

    val newBiMap= mutableBiMapOf()
  • Create a new mutable bimap from pairs:

    val newBiMap= mutableBiMapOf(1 to"1",2 to"2",3 to"3")
  • Create a new mutable bimap from map:

    val newBiMap=mapOf(1 to"1",2 to"2",3 to"3").toMutableBiMap()

Query bimap

  • Bimap support all operations of map:

    val biMap= biMapOf(1 to"1",2 to"2",3 to"3")biMap.size// 3biMap.isEmpty()// falsebiMap.values// ["1", "2", "3"]biMap[1]// "1"biMap.containsKey(4)// false
  • Get the inverse view of bimap:

    val biMap= biMapOf(1 to"1",2 to"2",3 to"3")val inverseBiMap= biMap.inverseinverseBiMap.values// [1, 2, 3]

Mutate mutable bimap

Mutable bimap support all operations of mutable map:

val mutableBiMap= mutableBiMapOf(1 to"1",2 to"2",3 to"3")mutableBiMap[3]="4"mutableBiMap.remove(1)mutableBiMap.clear()

When usingput operation (i.e.,mutableBiMap[3] = "4"), the bimap throwsIllegalArgumentException if the given value is already bound to a different key in it. The bimap will remain unmodified in this event. To avoid this exception, callforcePut instead:

mutableBiMap.forcePut(4,"2")

TheforcePut operation will silently remove any existing entry with the value before proceeding with theput operation.

Interoperability with Guava bimap

  • Views a mutable bimap as a Guava bimap:

    val mutableBiMap= mutableBiMapOf(1 to"1",2 to"2",3 to"3")val guavaBiMap= mutableBiMap.asGuavaBiMap()
  • Views a Guava bimap as a mutable bimap:

    val guavaBiMap=HashBiMap.create(mapOf(1 to"1",2 to"2",3 to"3"))val mutableBiMap= guavaBiMap.asMutableBiMap()

Using in your projects

This library has been published toMaven Central,JCenter andJitPack.

Maven

<dependency>  <groupId>com.uchuhimo</groupId>  <artifactId>kotlinx-bimap</artifactId>  <version>1.2</version></dependency>

Gradle

compile'com.uchuhimo:kotlinx-bimap:1.2'

Gradle Kotlin DSL

compile(group="com.uchuhimo", name="kotlinx-bimap", version="1.2")

Building from source

Build library with Gradle using the following command:

gradlew clean assemble

Test library with Gradle using the following command:

gradlew clean test

Since Gradle has excellent incremental build support, you can usually omit executing theclean task.

Install library in a local Maven repository for consumption in other projects via the following command:

gradlew clean install

License

© uchuhimo, 2017-2018. Licensed under anApache 2.0 license.

About

A bimap (bidirectional map) implementation for Kotlin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp