Stirng中的subString方法,官方解释是:返回字符串的子字符串,其实我们一般也可以这么理解,在字符串中截取指定字符串。比如下面代码:

    1. //截取指定字符串
    2. public static void test_subStirng(){
    3. String str = "abcd";
    4. String newStr = str.substring(1,3);
    5. System.out.println("原字符串:"+str);
    6. System.out.println("新字符串:"+newStr);
    7. }

    在调用subStirng方法之后,新字符串的值为:
    image.png
    ubString中传入了两个参数,第一个参数是开始位置(包含),第二参数是结束位置(不包含)。
    那么回头我们在来看看subList方法。
    List中的subList方法,官方定义:返回一个列表的字列表,看到这儿的时候,是不是觉得和subString简直一模一样(从功能的角度看)。我们用代码举个例子:

    1. public static void test_List(){
    2. List<String> lists = new ArrayList<String>();
    3. lists.add("a");
    4. lists.add("b");
    5. lists.add("c");
    6. lists.add("d");
    7. lists.add("e");
    8. System.out.println("原来的集合列表:");
    9. for (String str : lists) {
    10. System.out.print(str+" ");
    11. }
    12. //使用sublist
    13. List<String> newList = lists.subList(1, 3);
    14. System.out.println("\n调用subList方法之后,遍历集合");
    15. for (String str : newList) {
    16. System.out.print(str+" ");
    17. }
    18. }

    在调用完subList之后的运行结果:
    image.png
    subList方法也是需要传入两个参数,第一个是开始位置(包含),第二个是结束位置(不包含)。
    但是,如果我稍微改动一下此方法,代码如下:

    1. public static void test_List_new(){
    2. List<String> lists = new ArrayList<String>();
    3. lists.add("a");
    4. lists.add("b");
    5. lists.add("c");
    6. lists.add("d");
    7. lists.add("e");
    8. System.out.println("原来的集合列表:");
    9. for (String str : lists) {
    10. System.out.print(str+" ");
    11. }
    12. //使用sublist
    13. List<String> newList = lists.subList(1, 3);
    14. //给newList中新插入元素
    15. newList.add("f");
    16. newList.add("g");
    17. System.out.println("\n调用subList方法之后,遍历集合");
    18. for (String str : newList) {
    19. System.out.print(str+" ");
    20. }
    21. }

    image.png