关于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小屋
欢送关注集体公众号

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理