欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

大数据Java基础DAY17——集合(List接口)

时间:2023-06-12

目录

List接口

List接口概述

List接口成员方法

1.添加方法

2.删除功能

3.获取功能

4.修改功能

List集合特有的迭代器

 ListIterator接口的成员方法

 List集合特有遍历方式


List接口

 

List接口概述

有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。 与 set 不同,列表通常允许重复的元素。

List接口成员方法

1.添加方法

void add(int index,E element)  将指定的元素插入此列表中的指定位置(可选操作)

import java.util.ArrayList;import java.util.List;public class CollectionTest6 { public static void main(String[] args) { //创建List集合对象 List list =new ArrayList(); //向集合添加元素 list.add("java"); list.add("hadoop"); list.add("bigdata"); System.out.println(list); //void add(int index,E element) 将指定的元素插入此列表中的指定位置(可选操作) list.add(1,"hive"); //在索引为1的位置上(hadoop)插入hive System.out.println(list); }}

   插入元素索引超过集合长度会报错(范围:index>=0&&index <=list.size()  )

2.删除功能

E remove(int index) 删除该列表中指定位置的元素 (可选操作)

System.out.println(list); //原集合 //E remove(int index) 删除该列表中指定位置的元素 (可选操作) System.out.println(list.remove(3)); //删除索引为3的元素,有返回值,可输出,返回被删除的元素 System.out.println(list);

3.获取功能

E get(int index) 返回此列表中指定位置的元素

System.out.println(list);//原集合 //E get(int index) 返回此列表中指定位置的元素 System.out.println(list.get(2)); //返回索引为2的元素,原集合不变 System.out.println(list);

4.修改功能

E set(int index,E element)  用指定的元素(可选操作)替换此列表中指定位置的元素

System.out.println(list);//原集合 //E set(int index,E element) 用指定的元素(可选操作)替换此列表中指定位置的元素 Object o = list.set(1, "hello"); System.out.println(o); //返回的是被替换的那个元素 System.out.println(list);

List集合特有的迭代器

ListIterator listIterator() 返回列表中的列表迭代器(按适当的顺序)

ListIterator继承Iterator接口,所以内部有hasNext()和next()方法   【Collection,Iterator接口 】

例:用List特有迭代器遍历字符串

public class ListTest1 { public static void main(String[] args) { //创建List集合对象 List list =new ArrayList(); //向集合添加元素 list.add("java"); list.add("hive"); list.add("bigdata"); list.add("hadoop"); list.add("python"); //获取迭代器对象 ListIterator listIterator() 返回列表中的列表迭代器(按适当的顺序) ListIterator listIterator = list.listIterator(); //遍历 while(listIterator.hasNext()){ //向下转型,获取元素的方法(元素的长度) String s =(String) listIterator.next(); System.out.println(s+" 长度:"+s.length()); } }}

 ListIterator接口的成员方法

E previous()   返回列表中的上一个元素,并向后移动光标位置。可以反复调用此方法以向后遍历列表,或者与调用next()进行混合来回。(若最先使用会报错,因为前面无元素)

boolean hasPrevious()  遍历反向列表,列表迭代器有多个元素 返回true,否则false  (与hasnext()相对)

例:修改List迭代器反向遍历

while(listIterator.hasNext()){ //向下转型,获取元素的方法(元素的长度) String s =(String) listIterator.next(); System.out.println(s+" 长度:"+s.length()); } System.out.println("=======分界线=========="); while(listIterator.hasPrevious()){ String s= (String) listIterator.previous(); System.out.println(s+" 长度:"+s.length()); }

 所以要想用此方法反着遍历需先正着遍历,将指针移动到末尾。

 List集合特有遍历方式

因为List集合中有 E get(int index) 的获取方法,所以我们可以利用size()和get()方法结合来遍历。

例:List集合特有遍历方式

import java.util.ArrayList;import java.util.List;public class ListTest2 { public static void main(String[] args) { //创建List集合对象 List list=new ArrayList (); //添加元素 list.add("java"); list.add("sad23"); list.add("wre32323"); list.add("rr333"); //利用size()和get()方法遍历 for (int i=0;i

案例:存在一个集合,其中存放String类型数据,如果该集合元素里有“hive”,添加一个“true”。

方法一:迭代器遍历

import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListTest3 { public static void main(String[] args) { //创建List集合对象 List list = new ArrayList (); //添加元素 list.add("wa2323"); list.add("ds3434"); list.add("hive"); list.add("g444"); list.add("sd3s3"); //方法a:用list特有迭代器ListIterator遍历 //获取迭代器对象 ListIterator listIterator = list.listIterator(); while (listIterator.hasNext()){ Object next = listIterator.next(); //向下转型获取元素 String s=(String) next; //判断是否有“hive” if("hive".equals(s)){ listIterator.add("true"); //如果有,此时指针正好指向hive,所以将会在hive后添加true } } System.out.println(list);

方法二:List集合特有方法遍历

//方法b:利用List集合特有的遍历方式(size()和get()方法结合) for (int i=0;i

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。