package com.neutron.collection.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Collection接口的子类List,和Set
* List是有序的,并且允许元素重复,因为List等层实现是数字,存在索引,index
* Set是无需的,并且不允许元素重复
*
* 相对于Collection共性的方法,List特有的方法都是和索引有关系的内容。
* 增加: add(index,element), addAll(index, collection)
* 删除: remove(index)
* 修改: set(index, element)
* 查询: get(index), subList(from,to), listIterator()
* @author zhanght
*
*/
public class ListDemo {
public static void main(String[] args) {
List arr = new ArrayList();
// 添加元素
arr.add(0, "123");
arr.add(1, 345);
arr.add(2, "hello");
List insert = new ArrayList();
insert.add(0, "insert0");
insert.add(1, "insert1");
// 指定位置添加元素
arr.add(3, insert);
arr.addAll(4, insert);
System.out.println(arr);
//[123, 345, hello, [insert0, insert1], insert0, insert1]
// add: insert element; addAll: insert all elements
// 删除索引位置元素
arr.remove(3);
System.out.println(arr);
// [123, 345, hello, insert0, insert1]
// 修改元素
arr.set(3, "insert3");
System.out.println(arr);
// [123, 345, hello, insert3, insert1]
// we can see, set means edit, not add
Object obj = arr.get(3);
System.out.println("insert3".equals(obj));
System.out.println(arr);
// [123, 345, hello, insert3, insert1]
List subList = arr.subList(1, 4);
System.out.println("截取数据subList(1, 4): " + subList);
// [345, hello, insert3], 包括第一个索引位置,但是不包括最后索引位置数据
//遍历数据
for (Iterator iterator = arr.listIterator(); iterator.hasNext();) {
System.out.println(iterator.next());
}
// java8提供流遍历
arr.stream().forEach(element -> System.out.println(element));
arr.stream().forEach(System.out::println);
}
}
List接口案例
最新推荐文章于 2023-10-26 21:10:50 发布