博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java.util.List接口的方法subList()的使用注意事项
阅读量:5042 次
发布时间:2019-06-12

本文共 1498 字,大约阅读时间需要 4 分钟。

JDK中,List接口有一个实例方法List<E> subList(int fromIndex, int toIndex),

其作用是返回一个以fromIndex为起始索引(包含),以toIndex为终止索引(不包含)的子列表(List)。 

但值得注意的是,返回的这个子列表的幕后其实还是原列表;

也就是说,修改这个子列表,将导致原列表也发生改变;反之亦然。 

 

下面是一段实例代码: 

Java代码  
  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. public class TestSubList {  
  5.   
  6.     public static void main(String[] args) {  
  7.         List<Integer> test = new ArrayList<Integer>();  
  8.         //init list  
  9.         for (int i = 0; i < 5; i++) {  
  10.             test.add(i);    //auto boxing  
  11.         }  
  12.         //display the list  
  13.         System.out.print("the orginal list: ");  
  14.         for (int i = 0; i < test.size(); i++) {  
  15.             System.out.print(test.get(i) + " ");  
  16.         }  
  17.         System.out.println();  
  18.           
  19.         //sub list  
  20.         List<Integer> sub = test.subList(1, 3);       //sub list contains elements: 1, 2  
  21.         sub.remove(1);      //remove element “2” from sub list  
  22.           
  23.         //display the list again  
  24.         System.out.print("the orginal list after sublist modified: ");  
  25.         for (int i = 0; i < test.size(); i++) {  
  26.             System.out.print(test.get(i) + " ");  
  27.         }  
  28.         System.out.println();  
  29.     }  
  30.   
  31. }  

程序运行结果: 
the orginal list: 0 1 2 3 4 
the orginal list after sublist modified: 0 1 3 4 
在这段代码中,我们并没有改变原始列表“test”其中的元素。然而,当删除由subList方法得到的子列表中的元素时,原始列表中的该元素也被删除了。

 

 

public static void main(String[] args) {

List<Integer> list=new ArrayList<>();
for(int i=0;i<5;i++){
list.add(i);
}
System.out.println(list);
List<Integer> list01=list.subList(1, 4);
list01.add(6);
System.out.println(list01);
System.out.println(list.toString());
System.out.println(list);
}

 

 

结果:

[0, 1, 2, 3, 4]

[1, 2, 3, 6]
[0, 1, 2, 3, 6, 4]
[0, 1, 2, 3, 6, 4]

 

转载于:https://www.cnblogs.com/jiangyi666/p/5741887.html

你可能感兴趣的文章
Spark MLlib 之 Naive Bayes
查看>>
php修改SESSION的有效生存时间
查看>>
spring security 11种过滤器介绍
查看>>
Hibernate一对多、多对一关联
查看>>
一、记录Git使用中遇到的问题及解决方法
查看>>
学习网址
查看>>
前端表格插件datatables
查看>>
内部类
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>