一、列表方法
- add():将新值附加到此列表的末尾
- contains():如果此列表包含指定的值,则返回true
- get():返回此列表中指定位置的元素
- isEmpty():如果此列表不包含元素,则返回true
- minus():创建一个由原始元素组成的新列表,而不是集合中指定的元素
- plus():创建由原始元素和集合中指定的元素组成的新列表
- pop():从此列表中删除最后一个项目
- remove():删除此列表中指定位置的元素
- reverse():创建与原始列表的元素相反的新列表
- size():获取此列表中的元素数
二、基础造作
-
定义List
def List = [a, b, c]
-
数组类型
List.getClass()
-
数组长度
List.size()
-
复制数组
-
def 新List = new ArrayList<List内元素类型>(原List)
-
def 新List= 原List.clone()
-
-
判断是否为空
List.empty
class FirstTest{
static void main(String[] args) {
// 定义数组
def listTest = ["小红", "小蓝", "小明"]
println listTest.empty // false
// 数组类型
println listTest.getClass() // class java.util.ArrayList
// 数组长度
println listTest.size() // 3
// 复制数组
def listTest1 = new ArrayList<String>(listTest)
println listTest // [小红, 小蓝, 小明]
def listTest2 = listTest1.clone()
println listTest2 // [小红, 小蓝, 小明]
}
}
三、List查看元素
-
查看整个列表
List
-
查看单个元素
-
List[i]
:获取List中索引为i的元素,可以使用负数索引 -
List.getAt(i)
:获取List中索引为i的元素,可以使用负数索引 -
List.get(i)
:获取List中索引为i的元素,不能使用负数索引
-
class FirstTest{
static void main(String[] args) {
def listTest = ["小红", "小蓝", "小明"]
// 索引是从0开始的
println listTest[1] // 小蓝
println listTest[-1] // 小明
println listTest.getAt(1) // 小蓝
println listTest.getAt(-1) // 小明
println listTest.get(1) // 小蓝
// println listTest.get(-1) // !!报错
}
}
四、List修改元素
List[i] = x
:将List中索引为i的元素更改为xList.putAt(i,x)
:将List中索引为i的元素更改为xList.set(i, x)
:将List中索引为i的元素更改为x并返回原值
class FirstTest{
static void main(String[] args) {
def listTest = ["小蓝", "小红", "小明"]
println listTest // [小蓝, 小红, 小明]
listTest[1] = "小飞"
println listTest // [小蓝, 小飞, 小明]
listTest.putAt(0, "小花")
println listTest // [小花, 小飞, 小明]
println listTest.set(2,"小赵") // 小明
println listTest // [小花, 小飞, 小赵]
}
}
五、List迭代
List.each{执行语句}
List.each{变量名称 -> 执行语句}
List.eachWithIndex{变量名称, 索引 -> 执行语句}
class FirstTest{
static void main(String[] args) {
def listTest = ['小明', '小蓝', '小红']
// each只有元素
listTest.each{
// it是对应当前元素的隐式参数
println it
}
listTest.each{
student ->
println student
}
// eachWithIndex有元素和索引
listTest.eachWithIndex{
student, i ->
println i + ": " + student }
}
}
List.collect{执行语句}
class FirstTest{
static void main(String[] args) {
def num = [1,2,3]
println num.collect() // [1, 2, 3]
println num.collect{
it * 2} // [2, 4, 6]
println num*.multiply(2) // [2, 4, 6]
println num.collect{
it.multiply(2) } // [2, 4, 6]
// 可以给collect传入list参数,收集元素的列表
def list = [0]
println num.collect(list){
it * 2} // [0, 2, 4, 6]
}
}
六、List查找和过滤
-
查找
List.find{条件}
:找到第一个符合条件的元素List.findAll{条件}
:找到所有符合条件的元素List.findIndexOf{条件}
:找到第一个符合条件元素的索引
class FirstTest{ static void main(String[] args) { // 找出第一个符合条件的元素 println ([1,2,3].find{ it > 1 }) // 找到所有符合条件的元素 println ([1,2,3].findAll{ it > 1 }) // 找到符合条件的第一个元素的index println (['a', 'b', 'c', 'd', 'e'].findIndexOf{ it in ['c', 'e', 'g'] }) } }
-
索引
List.indexOf{条件}
:返回第一个符合条件的索引List.lastIndexOf{条件}
:返回最后一个符合条件的索引
class FirstTest{ static void main