Java中的List接口提供了subList()方法用于獲取列表中指定范圍的子列表,該方法的語(yǔ)法格式如下:
List<E> subList(int fromIndex, int toIndex)
其中,fromIndex表示獲取子列表的起始索引,包含該索引處的元素;toIndex表示獲取子列表的結(jié)束索引,不包含該索引處的元素。如果fromIndex等于toIndex,則返回一個(gè)空列表。如果指定的索引超出了列表的范圍,會(huì)拋出IndexOutOfBoundsException異常。
示例代碼如下:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("PHP");
list.add("Ruby");
// 獲取子列表,包含第2和第3個(gè)元素(注意:這里的索引是從0開(kāi)始計(jì)數(shù)的)
List<String> sublist = list.subList(1, 3);
System.out.println(sublist); // 輸出 [Python, C++]
}
}
該代碼創(chuàng)建了一個(gè)包含字符串類(lèi)型元素的List,并使用subList()方法獲取其中的子列表。從索引值1開(kāi)始,取兩個(gè)元素,即包括第2和第3個(gè)元素,輸出結(jié)果為[Python, C++]。
需要注意的是,獲取的子列表與原列表共享元素,即對(duì)子列表的修改也會(huì)反映到原列表中。例如,可以使用子列表的set()方法修改其中的元素,對(duì)應(yīng)原列表中的元素也會(huì)被修改,示例代碼如下:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("PHP");
list.add("Ruby");
// 獲取子列表,包含第2和第3個(gè)元素
List<String> sublist = list.subList(1, 3);
// 修改子列表中的第一個(gè)元素
sublist.set(0, "JavaScript");
System.out.println(list); // 輸出 [Java, JavaScript, C++, PHP, Ruby]
}
}
在該示例代碼中,子列表中的第一個(gè)元素被修改為"JavaScript",在輸出原列表時(shí),對(duì)應(yīng)的元素也被修改了。