Kotlin 汇合

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

1. Kotlin VS Java 汇合

类型KotlinJava
不可变ListList<T>List<T>
可变ListMutableList<T>List<T>
不可变MapMap<K,V>Map<K,V>
可变MapMutableMap<K,V>Map<K,V>
不可变SetSet<T>Set<T>
可变SetMutableSet<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小屋
欢送关注集体公众号