(1)集合框架的接口類型對比
(2)集合框架的創建
Java中創建List集合:
List<Integer> intList=new ArrayList<>(Arrays.asList(1,2,3));
Kotlin中創建List集合:
/**
* 該函數返回不可變的List集合,只能訪問不能添加和刪除,該函數可接受0個或多個參數,這些參數將作爲集合的元素。
*/
val intList1=listOf<Int>(1,2,3)
/**
* 該函數返回不可變的List集合。該函數與前一個函數的唯一區別是,該函數會自動去掉傳入的一系列參數中的null值。
*/
val intList2= listOfNotNull(1,2,3)
/**
* 該函數返回可變的MutableList集合。該函數可接受0個或多個參數,這些參數將作爲集合的元素。
*/
val intList3= mutableListOf<Int>(1,2,3)
/**
* 該函數返回可變的ArrayList集合。該函數可接受0個或多個參數,這些參數將作爲集合的元素。
*/
val intList4= arrayListOf<Int>(1,2,3)
Kotlin中創建Map集合:
/**
* 創建可變的Map集合
*/
val map1= mapOf<String,Any>("name" to "zhangsan","age" to 20)
/**
* 創建不可變的Map集合
*/
val map2= mutableMapOf<String,Any>("name" to "zhangsan","age" to 20)
注意:這裏的Any相當於Java中的Object
Kotlin中創建ArrayList:
val stringList=ArrayList<String>()
(3)集合框架的讀寫
Java中集合的添加:
List<String> stringList=new ArrayList<>();
for (int i=0;i<10;i++){
stringList.add("num:"+i);
}
Kotlin中集合的添加:
val stringList=ArrayList<String>()
for(i in 0 until 10){
stringList.add("num:$i")
}
或者
val stringList=ArrayList<String>()
for(i in 0 until 10){
stringList+="num:$i"
}
注意:對於List來講,+=等價於add
Java中集合的刪除:
List<String> stringList=new ArrayList<>();
for (int i=0;i<10;i++){
stringList.remove("num:"+i);
}
Kotlin中集合的刪除:
val stringList=ArrayList<String>()
for(i in 0 until 10){
stringList.remove("num:$i")
}
或者
val stringList=ArrayList<String>()
for(i in 0 until 10){
stringList-="num:$i"
}
注意:對於List來講,-=等價於remove
Java中對集合ArrayList的修改和讀取:
stringList.set(5,"Hello");
String valueAt5=stringList.get(5);
Kotlin中對集合ArrayList的修改和讀取:
stringList[5]="Hello"
val valueAt5=stringList[5]
Java中對集合Map的修改和讀取:
HashMap<String,Integer> map=new HashMap<>();
map.put("Hello",10);
System.out.println(map.get("Hello"));
Kotlin中對集合Map的修改和讀取:
val map=HashMap<String,Int>()
map["Hello"]=10
println(map["Hello"])
(4)Pair
val pair="Hello" to "Kotlin"
val pair2=Pair("Hello","Kotlin")
val first=pair.first
val second=pair.second
val(x,y)=pair//解構
(5)Triple
val triple=Triple("x",2,3.0)
val tripleFirst=triple.first
val tripleSecond=triple.second
val tripleThrid=triple.third
val (x,y,z)=triple//解構