【Java集合进阶】list常见的方法和五种遍历方式&数据结构

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

list集合

list集合的特点:

list集合特有的方法:

list集合的遍历方式

hasNext()和next()方法分析

list五种遍历方式代码学习

五种遍历方式对比

数据结构(栈)

数据结构(队列)

数据结构(数组)

数据结构(链表)

总结


list集合

list集合的特点:

  • 有序:存和取的元素顺序一致
  • 有索引:可以通过索引操作元素
  • 可重复:存储的元素可以重复

list集合特有的方法:

list方法的使用:

java 复制代码
package list;

import org.w3c.dom.ls.LSInput;

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

public class list_demon1 {
    public static void main(String[] args) {
        /*
        List系列集合独有的方法:
            void add(int index,E element)       在此集合中的指定位置插入指定的元素
            E remove(int index)                 删除指定索引处的元素,返回被删除的元素
            E set(int index,E element)          修改指定索引处的元素,返回被修改的元素
            E get(int index)                    返回指定索引处的元素
        */

        //1、创建一个list集合
        List<String> list = new ArrayList<>();

        //2、添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //在此集合中的指定位置插入指定的元素
        //细节,插入后,原来后面的元素依次往后面移
        list.add(1,"ddd");

        //删除指定索引处的元素,返回被删除的元素
        String remove = list.remove(0);
        System.out.println(remove);

        //修改指定索引处的元素,返回被修改的元素
        String qqq = list.set(0, "qqq");
        System.out.println(qqq);

        //返回指定索引处的元素
        String s = list.get(0);
        System.out.println(s);


        //3、打印集合
        System.out.println(list);


    }
}

list集合的遍历方式

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

1.迭代器

2.列表迭代器

3.增强for

4.Lambda表达式

5.普通for循环

hasNext()和next()方法分析

在Java中,hasNext()next()方法通常与Iterator接口一起使用,用于遍历集合(如List、Set、Map等)中的元素。

  1. hasNext()方法 :该方法用于检查迭代器是否有下一个元素。它返回一个boolean值,如果还有元素未被遍历,则返回true,否则返回false
  2. next()方法 :该方法用于获取迭代器指向的下一个元素,并将迭代器的指针移动到下一个位置。如果没有下一个元素可用,则抛出NoSuchElementException异常。

这两个方法通常与循环结构一起使用,例如while循环或for循环,来遍历集合中的元素。示例代码如下:

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");
        
        // 创建迭代器
        Iterator<String> iterator = list.iterator();
        
        // 使用迭代器遍历集合
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
    }
}

在上面的示例中,hasNext()方法用于检查是否还有下一个元素,next()方法用于获取下一个元素。

list五种遍历方式代码学习

java 复制代码
package list;

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

public class list_demon2 {
    public static void main(String[] args) {
        /*
            List系列集合的五种遍历方式:
                1.迭代器
                2.列表迭代器
                3.增强for
                4.Lambda表达式
                5.普通for循环
         */
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //1、迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            String str = it.next();
            System.out.println(str);
        }

        System.out.println("--------------------------------------");

        //2、增强for
        //前面的变量s,其实就是第三方的变量而已
        for (String s : list) {
            System.out.println(s);
        }

        System.out.println("--------------------------------------");

        //3、lambda表达式
        list.forEach(s -> System.out.println(s));

        //4、for循环
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }

        System.out.println("-------------------------");

        //5、列表迭代器
        // 列表迭代器
        ListIterator<String> it2 = list.listIterator();
        while (it2.hasNext()) { // 注意这里使用正确的迭代器变量 it2
            String str = it2.next();
            if ("ccc".equals(str)) {
                // 在此位置添加元素 "qqq"
                it2.add("qqq");
            }
        }
        System.out.println(list);
    }

}

五种遍历方式对比

数据结构(栈)

**栈的特点:**后进先出,先进后出

数据结构(队列)

**队列特点:**先进先出,后进后出

数据结构(数组)

数组是一种查询快,增删慢的模型

查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时间相同。

删除效率低:要将原始数据删除,同时后面每个数据前移。

添加效率极低:添加位置后的每个数据后移,再添加元素。

数据结构(链表)

总结

**栈:**后进先出,先进后出。

队列:先进先出,后进后出。

数组:内存连续区域,查询快,增删慢。

链表:元素是游离的,查询慢,首尾操作极快。

相关推荐
小禾苗_2 分钟前
数据结构——算法基础
数据结构
MSTcheng.3 分钟前
C语言操作符(上)
c语言·开发语言
无限码力4 分钟前
路灯照明问题
数据结构·算法·华为od·职场和发展·华为ode卷
嘻嘻哈哈樱桃4 分钟前
前k个高频元素力扣--347
数据结构·算法·leetcode
dorabighead5 分钟前
小哆啦解题记:加油站的奇幻冒险
数据结构·算法
xiao--xin10 分钟前
Java定时任务实现方案(一)——Timer
java·面试题·八股·定时任务·timer
DevOpsDojo11 分钟前
HTML语言的数据结构
开发语言·后端·golang
懒大王爱吃狼12 分钟前
Python绘制数据地图-MovingPandas
开发语言·python·信息可视化·python基础·python学习
数据小小爬虫16 分钟前
如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
开发语言·爬虫·python
MrZhangBaby23 分钟前
SQL-leetcode—1158. 市场分析 I
java·sql·leetcode