`

List的 sublist() 和 clear()方法的使用

    博客分类:
  • java
 
阅读更多
package com.yihaodian.mandy.bdb;

import java.util.ArrayList;
import java.util.List;

public class ListObjTest {
public static void main(String[] args) {
List<Product> list1 = new ArrayList<Product>();
for(int i=1;i<20;i++){
Product p = new Product(i, "p" + i);
System.out.print(p + "\t");
list1.add(p);
}
System.out.println();
// List<Product> list2 = list1.subList(0, 5);
//
// for(Product p : list2){
// p.setName("shit");
// }

int size = list1.size()/5;
int last = list1.size()%5;
System.out.println(size + "   " + last);
List<Product> tempList = null;
for(int i=0;i<size;i++){
tempList = list1.subList(i*5, (i+1)*5);
for(Product p:tempList){
p.setName("shit" + i);
System.out.print(p+"\t");
}
System.out.println();
}
tempList = list1.subList(list1.size() - last, list1.size());
for(Product p:tempList){
p.setName("shit" + size);
System.out.print(p+"\t");
}
System.out.println();
for(Product p : list1){
System.out.print(p+"\t");
}
}
}

输出结果:
Product [id=1, name=p1] Product [id=2, name=p2] Product [id=3, name=p3] Product [id=4, name=p4] Product [id=5, name=p5] Product [id=6, name=p6] Product [id=7, name=p7] Product [id=8, name=p8] Product [id=9, name=p9] Product [id=10, name=p10] Product [id=11, name=p11] Product [id=12, name=p12] Product [id=13, name=p13] Product [id=14, name=p14] Product [id=15, name=p15] Product [id=16, name=p16] Product [id=17, name=p17] Product [id=18, name=p18] Product [id=19, name=p19]
3   4
Product [id=1, name=shit0] Product [id=2, name=shit0] Product [id=3, name=shit0] Product [id=4, name=shit0] Product [id=5, name=shit0]
Product [id=6, name=shit1] Product [id=7, name=shit1] Product [id=8, name=shit1] Product [id=9, name=shit1] Product [id=10, name=shit1]
Product [id=11, name=shit2] Product [id=12, name=shit2] Product [id=13, name=shit2] Product [id=14, name=shit2] Product [id=15, name=shit2]
Product [id=16, name=shit3] Product [id=17, name=shit3] Product [id=18, name=shit3] Product [id=19, name=shit3]
Product [id=1, name=shit0] Product [id=2, name=shit0] Product [id=3, name=shit0] Product [id=4, name=shit0] Product [id=5, name=shit0] Product [id=6, name=shit1] Product [id=7, name=shit1] Product [id=8, name=shit1] Product [id=9, name=shit1] Product [id=10, name=shit1] Product [id=11, name=shit2] Product [id=12, name=shit2] Product [id=13, name=shit2] Product [id=14, name=shit2] Product [id=15, name=shit2] Product [id=16, name=shit3] Product [id=17, name=shit3] Product [id=18, name=shit3] Product [id=19, name=shit3]


对于集合list的sublist()方法:
修改tempList = list1.subList(i*5, (i+1)*5);
集合的对象,会对list1原集合的对象做修改,因为他们指向的是内存中的同一个地址,
但如果tempList = new ArrayList<Product>(list1.subList(i*5, (i+1)*5));
对tempList的修改对list1的对象的值没影响。


package com.yihaodian.mandy.bdb;

import java.util.ArrayList;
import java.util.List;

public class ListTest {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) {
List list1 = new ArrayList();
for(int i=0; i<20; i++){
list1.add(i);
}
List list2 = new ArrayList(list1.subList(0, 5));
list1.subList(0, 5).clear();
list2.add(11);

List list3 = new ArrayList(list1.subList(0, 5));
list1.subList(0, 5).clear();

// List list4 = list1.subList(0, 5);
// list4.add(22);
// list1.subList(0, 5).clear();

for (Object obj : list1) {
System.out.print(obj + "\t");
}
System.out.println();
for (Object obj : list2) {
System.out.print(obj + "\t");
}
System.out.println();
for (Object obj : list3) {
System.out.print(obj + "\t");
}
// System.out.println();
// for (Object obj : list4) {
// System.out.print(obj + "\t");
// }
}
}

输出结果:
10 11 12 13 14 15 16 17 18 19
0 1 2 3 4 11
5 6 7 8 9

list的clear()方法会把sublist截取的集合部分从list1中移除掉。
分享到:
评论

相关推荐

    java的list取之方法

    根据提供的文件信息,标题与描述均指向了Java中List的操作方法。然而,给出的部分内容却是一段关于导入Excel文件到Web应用中的代码片段,并没有直接涉及List的...希望本文能够帮助大家更好地理解和使用Java中的List。

    list常用方法

    本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. 创建List实例 ```java List&lt;E&gt; list = new ArrayList(); ``` 这里创建了一个基于`ArrayList`实现的`List`对象,...

    CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list

    List&lt;int&gt; subList = numbers.GetRange(1, 3); // 从索引1开始,取3个元素 ``` **12. 合并List&lt;T&gt;:** 通过`AddRange`方法可以将一个列表的元素添加到另一个列表: ```csharp List&lt;int&gt; otherNumbers = new List()...

    List.removeAll() 方法的性能效率

    例如,如果需要移除的元素是连续的,直接使用`subList()`和`clear()`可能更快。 5. **批量操作**:如果需要移除的元素列表较大,可以考虑先将它们放入一个HashSet,然后用`removeAll()`一次过移除。HashSet的查找...

    list的用法的源代码资源

    还有很多其他方法,如`clear()`(清空列表),`reverse()`(反转列表),`join()`(用于字符串,但可以结合`map()`使用在列表上)等。 通过这个资源包中的源代码示例,你可以亲手实践这些操作,加深对`list`的理解...

    JavaList.rar_javalist

    `List`接口还有许多其他方法,如`set(int index, E element)`用于替换元素,`clear()`用于清空列表,`subList(int fromIndex, int toIndex)`用于获取子列表等。理解并熟练运用这些方法,将使你在处理有序集合时更加...

    LIStinterface.zip

    压缩包中的"LIStinterface"可能包含了如何创建和操作List接口实例的代码示例,也可能包括关于List接口和其实现类性能对比的讨论,以及如何根据特定需求选择合适List类型的方法。通过学习和理解这些内容,开发者可以...

    Java 实例 - List 元素替换源代码+详细指导教程.zip

    如果你想用一个全新的列表替换当前列表的内容,可以使用`clear()`方法删除所有元素,然后使用`addAll(Collection&lt;? extends E&gt; c)`添加新的元素。 5. **基于条件替换**: 有时,我们可能希望根据某个条件替换元素...

    _Java-集合容器-2.List及其实现类.ppt

    下面的示例展示了如何使用ArrayList和List接口的一些方法: ```java List&lt;Integer&gt; list = new ArrayList(); list.add(3); // 添加元素 list.add(4); list.add(3); list.add(2); for (int i = 0; i &lt; list.size();...

    1.6-列表使用入门(代码加笔记)

    - **清空列表**:使用`clear()`方法。 ```python my_list.clear() ``` 6. **列表长度** 使用`len()`函数获取列表的元素数量。 ```python length = len(my_list) ``` 7. **列表操作** - **切片**:使用...

    有关单一窗口缓存配置和集群的事宜_V1.1.docx

    可以使用 CacheUtil.getItem("co_cbzszl") 方法读取缓存中的数据,然后使用 List 的 sublist 方法实现分页。 缓存数据的读取和写入 缓存数据的读取和写入是指从缓存中读取和写入数据的过程。使用 CacheUtil....

    阿里开发规范(集合与并发处理)

    **强制规定**:通过 `Arrays.asList()` 方法将数组转换为集合时,不应使用集合的修改方法(如 `add`, `remove`, `clear`),因为这些方法会抛出 `UnsupportedOperationException` 异常。 **说明**:`Arrays.asList`...

    Java集合List常见方法

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的数据存储和操作机制。...通过理解这些基本概念和方法,开发者可以在编写Java程序时更加熟练地运用集合框架,提高代码的效率和可维护性。

    Java集合讲义大全.docx

    Collection 是 List 和 Set 的父接口,在 Collection 中定义了一些主要方法,例如 add、addAll、clear、contains、containsAll、equals、hashCode、isEmpty、iterator、remove、removeAll 和 retainAll 等。...

    常用的类和方法1

    在Android开发中,掌握常用类和方法是非常重要的,这能帮助我们更高效地编写代码。以下是一些在Android开发中常见的类和方法的...了解并熟练使用这些常见的类和方法,能显著提高你在Android开发中的效率和代码质量。

    js模拟C#中List的简单实例

    3. **使用示例**:这些方法可以在实际JavaScript代码中按需使用,以实现类似于C# `List&lt;T&gt;`的功能。例如,创建一个列表,向其中添加元素,获取特定位置的元素,移除元素,检查列表是否为空,以及创建子列表等。 4. ...

    CoreJava面试技巧1.19.pdf

    - **删除子列表**:使用`List.subList(int fromIndex, int toIndex)`获取子列表,并调用`clear()`方法清空该子列表。 ```java list.subList(2, 6).clear(); ``` - **遍历删除元素**:为了防止并发修改异常,删除...

    Unidad3_Lista

    5. **List接口的方法**:了解`List`接口中特有的方法,如`add(E e, int index)`,`remove(int index)`,以及`subList(int fromIndex, int toIndex)`等。 6. **泛型**:Java的泛型允许我们在集合中定义元素的类型,...

    Java集合框架.ppt

    另外,List接口的`subList(int fromIndex, int toIndex)`方法可以返回一个新的列表,它是原始列表的子列表。 **四、Set接口** Set接口不保证元素的顺序,但确保元素的唯一性。HashSet是Set接口的一个常见实现,它...

Global site tag (gtag.js) - Google Analytics