subList?? subString???

举报
穆雄雄 发表于 2022/12/12 21:05:34 2022/12/12
【摘要】 今天看到了java中List中有个subList方法,感觉很熟悉有没有?没错,在Stirng类中,也有个类似的方法:subString。1String类的subStringString中的subString方法,官方解释是:返回字符串的子字符串,其实我们一般也可以这么理解,在字符串中截取指定字符串。比如下面代码://截取指定字符串 public static void test_subSt...

今天看到了javaList中有个subList方法,感觉很熟悉有没有?没错,在Stirng类中,也有个类似的方法:subString

1

String类的subString

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

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

在调用subStirng方法之后,其结果如下:

​编辑

subString中传入了两个参数,第一个参数是开始位置(包含) ,第二参数是结束位置(不包含)

那么回头我们在来看看subList方法。

2

List中类的subList

List中的subList方法,官方定义:返回一个列表的字列表,看到这儿的时候,是不是觉得和subString简直一模一样(从功能的角度看)。我们用代码举个例子:

public static void test_List(){
    List<String> lists = new ArrayList<String>();
    lists.add("a");
    lists.add("b");
    lists.add("c");
    lists.add("d");
    lists.add("e");
    System.out.println("原来的集合列表:");
    for (String str : lists) {
      System.out.print(str+" ");
    }
    //使用sublist
    List<String> newList = lists.subList(1, 3);
    System.out.println("\n调用subList方法之后,遍历集合");
    for (String str : newList) {
      System.out.print(str+" ");
    }
    
  }

在调用完subList之后的运行结果:

​编辑

subList方法也是需要传入两个参数,第一个是开始位置(包含) ,第二个是结束位置(不包含)

但是,如果我稍微改动一下此方法,代码如下:

public static void test_List_new(){
    List<String> lists = new ArrayList<String>();
    lists.add("a");
    lists.add("b");
    lists.add("c");
    lists.add("d");
    lists.add("e");
    System.out.println("原来的集合列表:");
    for (String str : lists) {
      System.out.print(str+" ");
    }
    //使用sublist
    List<String> newList = lists.subList(1, 3);
    
    //给newList中新插入元素
    newList.add("f");
    newList.add("g");
    System.out.println("\n调用subList方法之后,遍历集合");
    for (String str : newList) {
      System.out.print(str+" ");
    }
    
  }

我们再来看看结果:

​编辑

意外不,我明明改动的是newList集合,为什么原来的lists集合也跟着改了呢?这个知识点我们明天在讲!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。