📅  最后修改于: 2023-12-03 14:50:12.524000             🧑  作者: Mango
在Java中,我们可以使用List接口来实现列表数据结构。而在List中,有一个常用的操作就是对列表进行切片,即将列表中的一段元素提取出来。
切片可以使用List的subList()方法来实现。subList()方法接受两个参数,分别为起始位置和结束位置(不包括结束位置本身),返回一个新的List对象,其中包含了原List对象中指定范围的元素。
下面是一个简单的示例代码:
List<String> fruits = new ArrayList<>(Arrays.asList("apple", "banana", "cherry", "date", "elderberry"));
List<String> slicedFruits = fruits.subList(1, 4);
System.out.println(slicedFruits);
输出:
[banana, cherry, date]
这段代码中,我们在一个ArrayList中存储了5个字符串元素。我们从第二个元素(下标为1)开始,取到第五个元素(下标为4),即“banana”到“date”这三个元素,然后将它们放到一个新的List对象中并输出。
需要注意的是,使用subList()方法得到的新List对象与原List对象共享同一块内存空间。因此,在对新List对象进行操作时,可能会影响到原List对象。
下面是一个例子:
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> slicedNumbers = numbers.subList(1, 4);
slicedNumbers.set(1, 0);
System.out.println(slicedNumbers);
System.out.println(numbers);
输出:
[2, 0, 4]
[1, 2, 0, 4, 5]
在这个例子中,我们对原List对象进行了切片操作,并将切片结果的第二个元素(下标为1)改为了0。输出结果中可以看到,新List对象和原List对象都受到了影响。
切片是一个十分常用的操作,可以用来提取、处理列表中的部分元素。在Java中,我们可以使用List的subList()方法来实现切片操作。但需要注意的是,在对切片结果进行操作时,可能会影响到原List对象。