梁丘眉 发表于 2025-10-3 09:58:27

【Groovy】Array、List、Set、Map简介

1 Array

1.1 创建数组

1.1.1 创建一维数组

int[] arr1 = new int
arr1 = 1
arr1 = 2

float[] arr2 = new float[] { 1f, 2f, 3f }
String[] arr3 = ["abc", "xyz"] as String[]1.1.2 创建二维数组

int[][] arr1 = new int
arr1 = 1
arr1 = 2
arr1 = 3
arr1 = 4

float[][] arr2 = new float[][] { as float[], as float[] }

String[] arr3 = [["abc", "efg"], ["rst", "xyz"]] as String[][]1.2 遍历数组

def items = new String[] { "aa", "bb", "cc" }

for (item in items) {
    println(item) // 打印: aa、bb、cc
}

for (int i = 0; i < items.size(); i++) {
    println("items[$i]=${items}") // 打印: items=aa、items=bb、items=cc
}

for (index in items.indices) {
    println("items[$index]=${items}") // 打印: items=aa、items=bb、items=cc
}

items.each {
    println(it) // 打印: aa、bb、cc
}

items.eachWithIndex { item, index ->
    println("items[$index]=$item") // 打印: items=aa、items=bb、items=cc
}1.3 修改元素顺序

1.3.1 翻转元素

def arr1 = as Integer[]
def arr2 = arr1.reverse() // 翻转Array中元素, 并生成新的Array
def arr3 = arr1.reverse(true) // 在原Array上翻转元素1.3.2 打乱元素顺序

def arr1 = as Integer[]
def arr2 = arr1.shuffled() // 打乱Array元素顺序, 并生成新的Array
arr1.shuffle() // 打乱Array元素顺序1.3.3 元素排序

def arr1 = as Integer[]

def arr2 = arr1.sort() // 从小到大排序
def arr3 = arr1.sort(false) // 从小到大排序, 并生成新的Array
def arr4 = arr1.toSorted() // 从小到大排序, 并生成新的Array

def arr5 = arr1.sort {a, b -> b <=> a } // 从大到小排序
def arr6 = arr1.sort(false) { a, b -> b <=> a } // 从大到小排序, 并生成新的Array
def arr7 = arr1.toSorted { a, b -> b <=> a } // 从大到小排序, 并生成新的Array1.4 切片

def arr1 = ["AA", "BBB", "CC", "DDD", "E"] as String[]
def arr2 = arr1 // , 截取1,2元素
def arr3 = arr1.drop(2) // , 丢弃前2个元素
def arr4 = arr1.dropRight(2) // , 丢弃最后2个元素
def arr5 = arr1.take(2) // , 截取前2个元素
def arr6 = arr1.takeRight(2) // , 截取最后2个元素1.5 统计函数

def arr = as Integer[]
arr.sum() // 10
arr.average() // 2.5
arr.max() // 4
arr.min() // 1
arr.count { it > 1 } // 31.6 flatten

def arr = [["AA", "BB"], ["CC", "DD"]] as String[][]
String flatten = arr.flatten() // 2 List

2.1 创建 List

def list1 =
def list2 = List.of(1f, 2f, 3f)
def list3 = new ArrayList<Integer>()
def list4 = new LinkedList<String>()

def arr = new String[] { "abc", "xyz" }
def list5 = arr.toList()2.2 增删改查

2.2.1 增加元素

def list = []
list.add("abc")
list.add("xyz")
list.add(1, "zhang")
list += "san"
list += ["1", "2"]
list += Set.of("3", "4")
println(list) // 打印: 2.2.2 删除元素

def list = ["abc", "efg", "xyz", "1", "2", "3"]
list.remove("abc") //
list.removeAt(0) //
list -= "xyz" //
list -= ["2", "3"] //
list.clear() // []2.2.3 修改元素

def list = ["abc", "efg", "xyz"]
list = "ABC"2.2.4 访问元素

​    1)访问元素
def list = ["zhang", "li", "wang"]
println(list) // 打印: li
list = "chen"
list.first() // chen, 获取首个元素
list.last() // wang, 获取最后一个元素
list.indexOf("wang") // 2, 查找元素对应的索引​    2)遍历元素
def items = ["aa", "bb", "cc"]

for (item in items) {
    println(item) // 打印: aa、bb、cc
}

for (int i = 0; i < items.size(); i++) {
    println("items[$i]=${items}") // 打印: items=aa、items=bb、items=cc
}

for (index in items.indices) {
    println("items[$index]=${items}") // 打印: items=aa、items=bb、items=cc
}

items.forEach {
    println(it) // 打印: aa、bb、cc
}

items.each {
    println(it) // 打印: aa、bb、cc
}

items.eachWithIndex { item, index ->
    println("items[$index]=$item") // 打印: items=aa、items=bb、items=cc
}2.3 修改元素顺序

2.3.1 翻转元素

def list1 =
def list2 = list1.reverse() // 翻转List中元素, 并生成新的List
def list3 = list1.reverse(true) // 在原List上翻转元素2.3.2 打乱元素顺序

def list1 =
def list2 = list1.shuffled() // 打乱List元素顺序, 并生成新的List
list1.shuffle() // 打乱List元素顺序2.3.3 元素排序

def list1 =

def list2 = list1.sort() // 从小到大排序
def list3 = list1.sort(false) // 从小到大排序, 并生成新的List
def list4 = list1.toSorted() // 从小到大排序, 并生成新的List

def list5 = list1.sort { a, b -> b <=> a } // 从大到小排序
def list6 = list1.sort(false) { a, b -> b <=> a } // 从大到小排序, 并生成新的List
def list7 = list1.toSorted { a, b -> b <=> a } // 从大到小排序, 并生成新的List2.4 切片

def list1 = ["AA", "BBB", "CC", "DDD", "E"]
def list2 = list1 // , 截取1,2元素
def list3 = list1.drop(2) // , 丢弃前2个元素
def list4 = list1.dropRight(2) // , 丢弃最后2个元素
def list5 = list1.take(2) // , 截取前2个元素
def list6 = list1.takeRight(2) // , 截取最后2个元素2.5 统计函数

def list =
list.sum() // 10
list.average() // 2.5
list.max() // 4
list.min() // 1
list.count { it > 1 } // 32.6 groupBy

def list = ["AA", "BBB", "CC", "DDD"]
// , 3:]
Map<Integer, List<String>> map = list.groupBy { it.size() }2.7 flatten

def list = [["AA", "BB"], ["CC", "DD"]]
List<String> flatten = list.flatten() // 3 Set

3.1 创建 Set

def set1 = as Set
def set2 = Set.of(1f, 2f, 3f)
def set3 = new HashSet<Integer>()
def set4 = new LinkedHashSet<Float>()
def set5 = new TreeSet<String>()3.2 增删查

3.2.1 增加元素

def set = ["abc", "xyz"] as Set
set.add("1")
set += "2"
set += ["3", "4"]
set += Set.of("5", "6")
println(set) // 3.2.2 删除元素

def set = ["abc", "efg", "xyz", "zhang", "san", "li", "si"] as Set
set.remove("abc") //
set -= "xyz" //
set -= ["zhang", "san"] //
set -= Set.of("li", "si") //
set.clear() // []3.2.3 访问元素

​    1)访问元素
def set = ["zhang", "li", "wang"] as Set
set.any() // true, 判断Set是否为空(容量为0)
set.first() // zhang, 获取首个元素
set.last() // wang, 获取最后一个元素​    2)遍历元素
def items = ["aa", "bb", "cc"] as Set

for (item in items) {
    println(item) // 打印: aa、bb、cc
}

for (int i = 0; i < items.size(); i++) {
    println("items[$i]=${items}") // 打印: items=aa、items=bb、items=cc
}

for (index in items.indices) {
    println("items[$index]=${items}") // 打印: items=aa、items=bb、items=cc
}

items.forEach {
    println(it) // 打印: aa、bb、cc
}

items.each {
    println(it) // 打印: aa、bb、cc
}

items.eachWithIndex { item, index ->
    println("items[$index]=$item") // 打印: items=aa、items=bb、items=cc
}3.3 元素排序

def set = as Set

def list1 = set.sort() // 从小到大排序, 并生成新的List
def list2 = set.sort(false) // 从小到大排序, 并生成新的List
def list3 = set.toSorted() // 从小到大排序, 并生成新的List

def list4 = set.sort { a, b -> b <=> a } // 从大到小排序, 并生成新的List
def list5 = set.sort(false) { a, b -> b <=> a } // 从大到小排序, 并生成新的List
def list6 = set.toSorted { a, b -> b <=> a } // 从大到小排序, 并生成新的List3.4 切片

def set = ["AA", "BBB", "CC", "DDD", "E"] as Set
def list1 = set.drop(2) // , 丢弃前2个元素
def list2 = set.dropRight(2) // , 丢弃最后2个元素
def list3 = set.take(2) // , 截取前2个元素
def list4 = set.takeRight(2) // , 截取最后2个元素3.5 统计函数

def set =
set.sum() // 10
set.average() // 2.5
set.max() // 4
set.min() // 1
set.count { it > 1 } // 33.6 groupBy

def set = ["AA", "BBB", "CC", "DDD"] as Set
// , 3:]
Map<Integer, List<String>> map = set.groupBy { it.size() }3.7 flaten

def set = as Set
Set<String> flatten = set.flatten() // 4 Map

4.1 创建 Map

def map1 = [:]
map1.put("key", 1f)
map1["xyz"] = 2f

def map2 =

def map3 = ["1", "2", "3", "4"].toSpreadMap()
println(map3) // 打印:

def map4 = new HashMap<Integer, String>()
def map5 = new Hashtable<Integer, String>()
def map6 = new LinkedHashMap<Integer, String>()
def map7 = new ConcurrentHashMap<Integer, String>()
def map8 = new TreeMap<Integer, String>()4.2 增删改查

4.2.1 增加元素

def map = [:]
map.put("key", 1)
map["xyz"] = 2
map += ["abc": 3, "zhang": 4]
println(map) // 打印: 4.2.2 删除元素

def map = ["key":1, "xyz":2, "abc":3, "zhang":4, "san":5]
map.remove("key") //
map -= ["xyz": 2, "abc":3] //
map.clear() // [:]4.2.3 修改元素

def map = ["zhang":1, "san":2, "li": 3, "si": 4]
map["zhang"] = 10 //
map.put("li", 30) // 4.2.4 访问元素

​    1)访问元素
def map = ["zhang":1, "san":2, "li": 3, "si": 4]
println map["zhang"] // 1
println map.get("li") // 3​    2)遍历元素
def items = ["zhang":1, "san":2]

for (item in items) {
    println("items[${item.key}]=${item.value}") // 打印: items=1、items=2
}

items.forEach { key, value ->
    println("items[${key}]=${value}") // 打印: items=1、items=2
}

items.each {
    println("items[${it.key}]=${it.value}") // 打印: items=1、items=2
}4.3 keys 和 values

def map =
println(map.keySet()) //
println(map.values()) //
for (entry in map.entrySet()) {
    println("${entry.key}: ${entry.value}") // ,
}
println(map.containsKey(1001)) // true
println(map.containsValue("Tom")) // true4.4 getOrDefault

def map =
// 在没有结果时返回给定的默认值
def name = map.getOrDefault(1001, "xxx")​    声明:本文转自【Groovy】Array、List、Set、Map简介。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【Groovy】Array、List、Set、Map简介