java集合进阶--List中常见的方法和五种遍历方式

一、List集合概述
有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
与Set集合不同,列表通常允许重复的元素

二、List集合的特有方法

void add(int index,E element)      在此集合中的指定位置插入指定的元素
E remove(int index)                      删除指定索引处的元素,返回被删除的元素
E set(int index,E element)            修改指定索引处的元素,返回被修改的元素
E get(int index)                             返回指定索引处的元素

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

public class ListDemo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		/*
		 List系列集合独有的方法 :
		 	void add(int index,E element)		在此集合指定的位置插入指定的元素
		 	E remove(int index)					删除指定索引处的元素,返回被删除的元素
		  	E set(int index,E element)			修改指定索引处的元素,返回被修改的元素
		  	E get(int index)					返回指定索引处的元素
		 */
		
		//1.创建集合并添加元素
		List list=new ArrayList<>();
		
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		
		//void add(int index,E element)		在此集合指定的位置插入指定的元素
		//细节:原来索引上的元素会往后移
		//list.add(1,"QQQ");
		
		
		//E remove(int index)					删除指定索引处的元素,返回被删除的元素
		//String remove=list.remove(0);
		
		//E set(int index,E element)			修改指定索引处的元素,返回被修改的元素
		//String result=list.set(1, "LLL");
		//System.out.println(result);
		
		
		//E get(int index)						返回指定索引处的元素
		String get=list.get(2);
		
		//2.打印集合
		System.out.println(get);

	}

}

2.1 List系列集合中的两个删除方法 

1.直接删除元素
2.通过索引进行删除

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

public class ListRemove {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//List系列集合中的两个删除方法
		//1.直接删除元素
		//2.通过索引进行删除
		
		
		//1.创建集合并添加元素
		List list=new ArrayList<>();
		list.add(1);
		list.add(2);
		list.add(3);
		
		//2.删除元素
		//请问:此时删除的是1这个元素,还是1索引上的元素?
		//为什么?
		//因为在调用方法的时候,如果方法出现了重载现象
		//优先调用实参跟形参类型一致的那个方法
		
		/*list.remove(1);
		System.out.println(list);*/
		
		//3.如果我们想要删除1这个元素而不是1这个索引应该怎么做?
		Integer i=Integer.valueOf(1);
		list.remove(i);
		System.out.println(list);

	}

}

三、ListIterator介绍
通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器
用于允许程序员沿任一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置

ListIterator it=list.listIterator();
		while(it.hasNext()) {
			String str=it.next();
			if("bbb".equals(str)) {
				it.remove();
			}
		}
		System.out.println(list);

四、 List系列集合的五种遍历方式

         1.迭代器
         2.列表迭代器
         3.增强for循环 
         4.Lambda表达式
         5.普通for循环

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class ListDemo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		/*
		 List系列集合的五种遍历方式
		 1.迭代器
		 2.列表迭代器
		 3.增强for循环 
		 4.Lambda表达式
		 5.普通for循环
		 
		 五种遍历方式的对比
		 迭代遍历器:在遍历的过程中需要删除元素,请使用迭代器
		 列表迭代器:在遍历的过程中需要添加元素,请使用列表迭代器
		 增强for遍历:
		 Lambda表达式:仅仅想遍历,那么使用增强for或Lambda表达式
		 普通for:如果遍历的时候想操作索引,可以使用普通for循环
		 */

		//1.创建集合并添加元素
		List list=new ArrayList<>();
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		
		//1.迭代器
		/*Iterator it=list.iterator();
		while(it.hasNext()) {
			String str=it.next();
			System.out.println(str);
		}*/
		
		// 2.增强for循环
		/*for(String s:list) {
			System.out.println(s);
		}*/
		
		//3.Lambda表达式
		//forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
		//并把每一个元素传递给下面的accept方法
		//accept方法的形参s,依次表示集合中的每一个元素
		//list.forEach(s->System.out.println(s));
		
		//4.普通for循环
		/*for(int i=0;i it=list.listIterator();
		while(it.hasNext()) {
			String str=it.next();
			if("bbb".equals(str)) {
				it.remove();
			}
		}
		System.out.println(list);
	}

}

五、五种遍历方式的对比
         迭代遍历器:在遍历的过程中需要删除元素,请使用迭代器
         列表迭代器:在遍历的过程中需要添加元素,请使用列表迭代器
         增强for遍历:
         Lambda表达式:仅仅想遍历,那么使用增强for或Lambda表达式
         普通for:如果遍历的时候想操作索引,可以使用普通for循环

你可能感兴趣的:(java,数据结构,开发语言)