Java教程

技术问答-9 java中的集合(4)-List

本文主要是介绍技术问答-9 java中的集合(4)-List,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

List

一、List是什么
  • List是有序集合,有时也被称为序列,可以有重复的元素
  • List相对于集合Collection扩展了一些方法 :位置访问、搜索、迭代、视图
  • 与Set一样,List要求强化equal和hashCode以使两个集合元素可以进行逻辑上的比较,而不考虑他们具体实现类的类型。当两个List有相同元素时,他们被认为是相等的
二、新增方法
返回值方法描述
booleanadd(int,E)向集合指定索引处插入一个对象,该索引必须与集合连贯
booleanaddAll(i,Collection<? extend E>)向集合指定索引处插入一个集合的所有元素,该索引必须与集合连贯
Eset(int,E)将集合指定索引处元素修改为指定对象,并返回旧对象
booleanremove(int)移除指定索引处元素,集合元素数没有改变时返回false
voidreplaceAll(UnaraOperator< E>)按照指定一元运算对所有元素进行修改
Objectget(int)获取指定索引处元素
intindexOf(Object)从集合中查找给定对象第一次出现的索引,没有时返回-1
intlastIndexOf(Object)从集合中查找最后一次出现的索引,没有时返回-1
List< E>subList(int,int)返回指定索引之间元素组成的视图,不包括结束索引元素
ListIterator< E>listiterator()获取集合序列迭代器
ListIterator< E>listIterator(int)获取集合序列迭代器,并将指针指向给定元素前
voidsort(Comparator)通过给定的排序器进行排序

什么叫与集合连贯?

  • 集合size() ==0 与集合连贯的下标就是0
  • 集合size() == 1 与集合连贯的下标就是0,1
  • 通俗的说就是集合中已经存在元素的元素下标和集合size()处(下一个元素要存储的下标)

replaceAll、listiterator 使用方法

package along;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;import java.util.function.UnaryOperator;public class javaTest {
   public static void main(String[] args) {
   	//replaceAll使用 
   	List<String> list = new ArrayList<>();
   	list.add("旧值");
   	list.replaceAll(new UnaryOperator<String>() {
   		public String apply(String t) {
   			return "新值";
   		}
   	});
   	System.out.println(list);
   	//[新值]
   	
   	List<Integer> listI = new ArrayList<>();
   	listI.add(11);
   	listI.add(22);
   	listI.add(33);
   	ListIterator<Integer> it = listI.listIterator();
   	//正向遍历 11 22 33 
   	while(it.hasNext()){
   		System.out.print("下标:"+it.nextIndex()+" ");
   		System.out.print("值:"+it.next()+"\t");
   	}
   	//指针指向集合尾部元素后时,nextIndex()返回list.size();
   	System.out.println("指向尾部元素:"+it.nextIndex());
   	//反向遍历 33 22 11
   	while(it.hasPrevious()){
   		System.out.print("下标:"+it.previousIndex()+" ");
   		System.out.print("值:"+it.previous()+"\t");
   	}
   	//指针指向集合头部元素前时,previousIndex()返回-1;
   	System.out.println("指向尾部元素:"+it.previousIndex());
   	
   	//add(E)方法会在迭代的时候,向指针移动的方向后面添加一个元素,而set(E)方法将当前迭代的元素修改为给定对象.
   	it.add(88);//会在下标0处添加 88
   	System.out.println(listI);
   	//it.set(99);//会报错 
   	System.out.println(it.next());
   	it.set(99);//会把11修改为99
   	System.out.println(listI);
   }}
这篇关于技术问答-9 java中的集合(4)-List的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!