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的操作方法。然而,给出的部分内容却是一段关于导入Excel文件到Web应用中的代码片段,并没有直接涉及List的...希望本文能够帮助大家更好地理解和使用Java中的List。
本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. 创建List实例 ```java List<E> list = new ArrayList(); ``` 这里创建了一个基于`ArrayList`实现的`List`对象,...
List<int> subList = numbers.GetRange(1, 3); // 从索引1开始,取3个元素 ``` **12. 合并List<T>:** 通过`AddRange`方法可以将一个列表的元素添加到另一个列表: ```csharp List<int> otherNumbers = new List()...
例如,如果需要移除的元素是连续的,直接使用`subList()`和`clear()`可能更快。 5. **批量操作**:如果需要移除的元素列表较大,可以考虑先将它们放入一个HashSet,然后用`removeAll()`一次过移除。HashSet的查找...
还有很多其他方法,如`clear()`(清空列表),`reverse()`(反转列表),`join()`(用于字符串,但可以结合`map()`使用在列表上)等。 通过这个资源包中的源代码示例,你可以亲手实践这些操作,加深对`list`的理解...
`List`接口还有许多其他方法,如`set(int index, E element)`用于替换元素,`clear()`用于清空列表,`subList(int fromIndex, int toIndex)`用于获取子列表等。理解并熟练运用这些方法,将使你在处理有序集合时更加...
压缩包中的"LIStinterface"可能包含了如何创建和操作List接口实例的代码示例,也可能包括关于List接口和其实现类性能对比的讨论,以及如何根据特定需求选择合适List类型的方法。通过学习和理解这些内容,开发者可以...
如果你想用一个全新的列表替换当前列表的内容,可以使用`clear()`方法删除所有元素,然后使用`addAll(Collection<? extends E> c)`添加新的元素。 5. **基于条件替换**: 有时,我们可能希望根据某个条件替换元素...
下面的示例展示了如何使用ArrayList和List接口的一些方法: ```java List<Integer> list = new ArrayList(); list.add(3); // 添加元素 list.add(4); list.add(3); list.add(2); for (int i = 0; i < list.size();...
- **清空列表**:使用`clear()`方法。 ```python my_list.clear() ``` 6. **列表长度** 使用`len()`函数获取列表的元素数量。 ```python length = len(my_list) ``` 7. **列表操作** - **切片**:使用...
可以使用 CacheUtil.getItem("co_cbzszl") 方法读取缓存中的数据,然后使用 List 的 sublist 方法实现分页。 缓存数据的读取和写入 缓存数据的读取和写入是指从缓存中读取和写入数据的过程。使用 CacheUtil....
**强制规定**:通过 `Arrays.asList()` 方法将数组转换为集合时,不应使用集合的修改方法(如 `add`, `remove`, `clear`),因为这些方法会抛出 `UnsupportedOperationException` 异常。 **说明**:`Arrays.asList`...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的数据存储和操作机制。...通过理解这些基本概念和方法,开发者可以在编写Java程序时更加熟练地运用集合框架,提高代码的效率和可维护性。
Collection 是 List 和 Set 的父接口,在 Collection 中定义了一些主要方法,例如 add、addAll、clear、contains、containsAll、equals、hashCode、isEmpty、iterator、remove、removeAll 和 retainAll 等。...
在Android开发中,掌握常用类和方法是非常重要的,这能帮助我们更高效地编写代码。以下是一些在Android开发中常见的类和方法的...了解并熟练使用这些常见的类和方法,能显著提高你在Android开发中的效率和代码质量。
3. **使用示例**:这些方法可以在实际JavaScript代码中按需使用,以实现类似于C# `List<T>`的功能。例如,创建一个列表,向其中添加元素,获取特定位置的元素,移除元素,检查列表是否为空,以及创建子列表等。 4. ...
- **删除子列表**:使用`List.subList(int fromIndex, int toIndex)`获取子列表,并调用`clear()`方法清空该子列表。 ```java list.subList(2, 6).clear(); ``` - **遍历删除元素**:为了防止并发修改异常,删除...
5. **List接口的方法**:了解`List`接口中特有的方法,如`add(E e, int index)`,`remove(int index)`,以及`subList(int fromIndex, int toIndex)`等。 6. **泛型**:Java的泛型允许我们在集合中定义元素的类型,...
另外,List接口的`subList(int fromIndex, int toIndex)`方法可以返回一个新的列表,它是原始列表的子列表。 **四、Set接口** Set接口不保证元素的顺序,但确保元素的唯一性。HashSet是Set接口的一个常见实现,它...