乐趣区

关于java:Kotlin-集合

Kotlin 汇合

  1. 减少了 “ 不可变 ” 汇合框架的接口
  2. 没有重整旗鼓, 复用 Java API 的所有实现类型
  3. 提供了丰盛的办法,例如 forEach/map/flatMap 等高阶函数
  4. 运算符级别的反对,简化汇合框架的拜访

1. Kotlin VS Java 汇合

类型 Kotlin Java
不可变 List List<T> List<T>
可变 List MutableList<T> List<T>
不可变 Map Map<K,V> Map<K,V>
可变 Map MutableMap<K,V> Map<K,V>
不可变 Set Set<T> Set<T>
可变 Set MutableSet<T> Set<T>

1. 创立 List 汇合

java

 List<String> list = new ArrayList<>();
 List<Integer> list = new ArrayList(Arrays.asList(1,2,3));

kotlin

 val stringList = listOf("Hello" , "World")
 val mutableStringList = mutableListOf("Hello","World")
 var stringList = ArrayList<String>() 
// 省去 new 其余和 Java 相似,然而这个 ArrayList 是 kotlin.collections.ArrayList
// 通过 typealias ArrayList<E> = java.util.ArrayList<E>

2. List 汇合的读写

java

  List<String> list = new ArrayList<>();
  list.add("Hello");
  list.add("Java");
  list.get(0);

kotlin

可是间接应用相似数组下标形式 [] 去读写 list,当 stringList[1] 表达式在右边示意 赋值 在左边示意 get 取值

  val stringList = ArrayList<String>()
  stringList.add("Hello")
  stringList[1] = "World"  // 等于 stirngList.add("Wrold")  在 = 号右边
  val hellostring = stringList.get(0)
  val worldstring = stringList[1]  // 等于 stirngList.get(1) 在 = 号左边 

3. Map 汇合的创立

java

  Map<String,Object> map = new HashMap<>();
  map.put("Hello","World");

kotlin

应用 to 创立 Pair 类型

    val stringmap = mapOf("Hello" to "World" , "age" to  20)
  //"Hello" to "World" 立刻为 K- V 即可 

4. 汇合框架的读写

4.1 写入汇合
4.1.1 list 写入

能够应用 add 或者 +=

+= 对于 List 来说 等价于 add

   val stringList3 = mutableListOf<String>("1","2","3")

    for(i in stringList3.indices){stringList3.add("num: $i")
    }
    for(i in stringList3.indices){stringList3 += ("num: $i")
    }

-= 对于 List 来说 等价于 remove

    for(i in stringList3.indices){stringList3 -= ("num: $i")
    }
    println(stringList3.joinToString())
4.1.2 map 写入
 stringmap["Hello"] = "World"
 stringmap.plus("Hello" to "World") 
4.2 读取汇合
4.2.1 list 读取
  val hellostring = stringList.get(0)
  val worldstring = stringList[1]  // 等于 stirngList.get(1) 在 = 号左边
4.2.2 map 读取

也可应用 [] 形式

  val key = stringmap["Hello"]
  val getkey = stringmap.get("Hello")

5. 汇合别名

有没有留神,kotlin 中创立汇合的 ArrayList 和 Java 中的 很像,然而其实是不一样的,通过别名的形式

java

 List<String> list = new ArrayList<>();

Kotlin

 var stringList = ArrayList<String>() 
 // 省去 new 其余和 Java 相似,然而这个 ArrayList 是 kotlin.collections.ArrayList
 // 通过 typealias ArrayList<E> = java.util.ArrayList<E>

Kotlin 中汇合别名

@SinceKotlin("1.1") public typealias ArrayList<E> = java.util.ArrayList<E>
@SinceKotlin("1.1") public typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V>
@SinceKotlin("1.1") public typealias HashMap<K, V> = java.util.HashMap<K, V>
@SinceKotlin("1.1") public typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>
@SinceKotlin("1.1") public typealias HashSet<E> = java.util.HashSet<E>

6. Pair & Triple

6.1 Pair(其实就是 K-V)
    val pair = "Hello" to "World" //to 形式创立
    val pair2 = Pair("Hello" , "World") // 构造函数形式创立
    val value1 = pair.first  // first 取第一个,既 key
    val value2 = pair.second // second 第二个 即 value
    val (x,y) = pair   // 解构 
6.2 Triple
    val triple = Triple("Hello" , 20 , 0.1)
    val first = triple.first
    val second = triple.second
    val third = triple.third
    val (x,y,z) = triple

欢送大家拜访 集体博客 Johnny 小屋
欢送关注集体公众号

退出移动版