JAVA中的容器解析----集合3---List集合的子类

JIAVA基础总结(二) 注:从网上找资料整理的,不是自己写的,可能有一些加入了自己的想法,由于从网上找的太多,不知道哪些是谁的,就没标明出处了,反正不是我自己写的就对了 JAVA基础(一) 内部类 什么是内部类? 在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是内部类。内部类本身就是类的一个属性,与其他属性定义方式一致。 内部类的分类有哪些 内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。 静态内部类 定义在类内部的静态类,就是静态内部类。 public class Outer { p 阅读详情

List集合是Java中常用的集合之一,其常用子类有两个,分别是ArrayList和LinkedList
这两个集合的特点是不尽相同的
—ArrayList集合的特点是:底层数据结构是数组,查询和修改快,增删慢
—LinkedList集合特点是:底层数据结构是链表查询和修改慢,增删快(数据量大的时候明显)
–注意,他们的相同点是:都是有序的,而且可以存储重复索引

在讲这两个集合之前,先来看看几种常见的数据结构

那么什么是数据结构呢?
数据结构是计算机存储, 组织数据的方式。它是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下, 精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
通俗理解: 数据结构指的就是数据的组织方式

1.常见的数据结构

1.1栈… 队列
需求:
我要把A, B, C三个元素存入到栈中, 流程是怎样的呢?
我要把A, B, C三个元素存入到队列中, 流程是怎样的呢?
栈和队列的图解
在这里插入图片描述

1.2数组…链表
需求

  1. 假设有元素11, 22, 33, 44, 55, 分别通过数组和链表的图解模拟以下需求
  2. 要获取33这个元素, 怎么实现呢?
  3. 要在33这个元素后面添加一个新元素88, 怎么实现呢?
  4. 要删除33这个元素, 怎么实现呢?
    仔细看图,理解每一步

下面我们用具体案例来分析ArrayList和LinkList这两个集合的原理,重点关注底层数据结构
1.ArrayList集合
需求
1.定义ArrayList集合, 存储3个字符串信息, 分别是: “hello”, “world”, “java”.
2.通过三种方式, 遍历上述的集合.
提示: 迭代器, 普通for, 增强for.

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

//案例: 演示ArrayList集合存储字符串并遍历
public class Demo01 {
    public static void main(String[] args) {
        //1.定义ArrayList集合, 存储3个字符串信息, 分别是: "hello", "world", "java"
        ArrayList<String> list = new ArrayList<>();
        list.add("hello");
        list.add("world");
        list.add("java");
        //2.通过三种方式, 遍历上述的集合
        // 提示: 迭代器, 普通for, 增强for
        //方式一: 迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
        System.out.println("----------------------");

        //方式二: 普通for
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
        System.out.println("-------------------------");

        //方式三: 增强for, 掌握
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-------------------------");

        //方式四: 列表迭代器, 掌握
        ListIterator<String> lit = list.listIterator();
        while (lit.hasNext()) {
            String s = lit.next();
            System.out.println(s);
        }
        System.out.println("-------------------------");

        //方式五: 把集合转成数组, 然后遍历.  Collection#toArray();(了解)
        Object[] objs = list.toArray();
        for (Object obj : objs) {
            System.out.println(obj);
        }
    }
}

2.LinkedList集合

LinkedList集合主要是用来操作头和尾元素的, 所以它里边定义了大量这类的方法, 常用的方法如下: 
? public void addFirst(E e) 往列表的开头插入指定的元素
? public void addLast(E e) 往列表的末尾插入指定的元素
? public E removeFirst() 删除列表中的第一个元素, 并返回被删除的元素
? public E removeLast() 删除列表中的最后一个元素, 并返回被删除的元素.
? public E getFirst() 返回列表的第一个元素
? public E getLast() 返回列表的最后一个元素

需求
1.创建LinkedList集合对象, 存储字符串数据: “hello”, “world”, “java”
2.分别演示上述的6个方法.

/*
    LinkedList集合主要是操作首尾元素的:
        public void addFirst(E e) 往列表的开头插入指定的元素
        public void addLast(E e) 往列表的末尾插入指定的元素
        public E removeFirst() 删除列表中的第一个元素, 并返回被删除的元素
        public E removeLast() 删除列表中的最后一个元素, 并返回被删除的元素
        public E getFirst() 返回列表的第一个元素
        public E getLast() 返回列表的最后一个元素
   LinkedList一般用于一些面试题, 让我们模拟一些数据结构
*/
public class Demo02 {
    public static void main(String[] args) {
        //1.创建LinkedList集合对象, 存储字符串数据: "hello", "world", "java"
        LinkedList<String> list = new LinkedList<>();
        list.add("hello");
        list.add("world");
        list.add("java");
        //2.分别演示上述的6个方法
        //演示添加.
        /*list.addFirst("加班可以,得加钱");
        //list.addLast("我秃了,也强了");
        list.add("我秃了,也强了");*/

        //演示删除元素
        //System.out.println(list.removeFirst());
        //System.out.println(list.removeLast());

        //演示获取
        System.out.println(list.getFirst());
        System.out.println(list.getLast());

        //3, 打印集合
        System.out.println("list: " + list);
    }
}

注意:练习的时候一定要不断总结,总结API的使用和遇到的错误,这样才能在日后遇到错误知道咋么解决!

JAVA初级之集合(List集合) Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素它是单值集合的根接口,如果想使用Collection集合中的功能,需要创建该接口的子类。创建Collection集合的对象多态的方式具体的实现类ArrayListList集合的概述有序集合,这里的有序指的是存取顺序用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素List集合的特点存取有序可以重复有索引。 阅读详情

相关推荐

微信中调起支付宝支付

微信中调用支付宝支付,首先我们知道微信是不能直接调用支付宝的,所以我们需要使用一个中间页提示用户在浏览器中打开,然后进行网页支付或打开app支付。以下为详细唤起支付宝的步骤、业务代码以及相关页面图。 如有问题欢迎评论留言,看到定回复哦^_^\(^o^)/~ 一、微信中唤起支付宝,有几个步骤: 1、中间页引导用户在浏览器中打开去唤起支付宝。 2、浏览器中打开支付宝或app中打开支付宝。 3...

han_calligrapher的博客 2万+

【JAVA |开篇】JAVA入门及JDK环境配置

它具有令人赏心悦目的语法和易于理解的语义Write once, Run anywhere(这句话体现了JAVA语言的核心,一次运行 任意平台实现)下图就是JAVA语言的基本一个实现流程其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行(Windows操作系统,Linux操作系统,MAC操作系统)

YKX0000的博客 1106

[LVGL]:MACOS下使用LVGL模拟器

[LVGL]:MACOS下使用LVGL模拟器

LINKKEEE的博客 2456

Java/JDK下载安装与环境配置(Windows 10 超详细的图文版教程 )

前言:对于很多初学者来说,我想可能很多人都会遇到的一个问题就是Java环境变量的配置问题。自己明明就是按照度娘上的教程去一步步配置的,但还是会有很多的人出现配置不成功的问题。所以今天在这里分享一下windows 10 系统下安装Java的教程,希望对Java初学者能有所帮助。 一. Java的下载与安装 作为初学者,要想学习Java语言,第一个条件就是要让电脑上具备有Java环境,那么怎么让电...

奔三的Uncle 44万+

同物种,不同版本之间的坐标转化

是最常用的工具,如果有可用的链文件,这通常是最便捷的方法。CrossMap是一个功能强大的替代工具,支持多种文件格式和物种。自定义生成链文件适用于没有现成资源的情况,虽然复杂一些,但可以满足特定需求。Ensembl 和 Gramene提供的工具适用于支持的物种,尤其在植物基因组领域可能更具优势。选择合适的方法取决于你正在处理的物种、基因组版本以及现有的资源。

qq_40256654的博客 1851

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3473

Java 入门 (超级详细)

Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行。Java还提供了丰富的库和框架,可以加快开发过程,提高开发效率。变量是计算机程序中用于存储数据的一种数据类型。它是一个名称,代表了一个值或一个对象,可以在程序中多次使用。

qq_63519395的博客 10万+

PCL 三次均匀B样条曲线拟合

PCL 三次均匀B样条曲线拟合

dayuhaitang1的博客 398

防止java反编译的一些常用方法

常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 1. 隔离Java程序   最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开

chen825919148的专栏 1153

YOLO26改进策略【Neck】| 关键点检测:SDFM 表层细节融合模块,利用通道-空间注意力机制,实现深层与浅层特征融合,抑制噪声干扰

本文记录的是利用SDFM 模块改进 YOLO26 的颈部融合部分,专门用于关键点检测。SDFM模块(Surface Detail Fusion Module,表层细节融合模块) 通过在特征提取网络的浅层引入通道-空间注意力机制,动态生成深层与浅层特征融合权重。该模块可自适应保留不同模态中的独特信息,抑制背景噪声与光照干扰,实现低层细节的精准对齐与互补增强,为后续检测提供高保真度的底层特征表示,从而提升模型在复杂场景下的目标检测鲁棒性与定位准确性。Rethinking the necessity of ima

Limiiiing的博客 175

VMware Horizon 8 2111 部署系列(十一)准备RDS主机

RDS (Remote Desktop Service),即远程桌面服务。我们可以使用 Microsoft 远程桌面服务 (RDS) 提供 RDS 主机上的桌面会话并将应用程序传送给多个用户。

白昼的技术专栏 3468

java中list,set,map集合的区别,及面试要点

(图一) 1.面试题:你说说collection里面有什么子类。 (其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set) 正如图一,list和set是实现了collection接口的。 (...

Camel 3万+

Android Treble 简介

上面两段话来自官网上,Android 8.0 重新设计了 Android 操作系统框架(在一个名为“Treble”的项目中),以便让制造商能够以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。本文主要整理一下Android Treble框架。

私房菜 9272

Java中的集合Collection以及对应的子类list类

java Collection List

我与大象的故事 3725

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java集合类中的List类以及常用的子类

List接口中常用类: ArrayList 继承自Collection类,所以继承了其增删改查的特性。 使用前需导入包: import java.util.*; 例1:迭代器的使用 class CollectionDemo { public static void main(String[] args) { //创建一个集合容器。使用Collection接口的子类。ArrayList ArrayList al=new ArrayList(); //添加元素

Rock N' Roll Forever 950

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java[5]:集合容器

1.集合体系(1) 集合是什么  集合是存储元素的容器,支持数据的存取和查询操作,与数据结构密切相关。Java集合框架提供了多种常用数据结构的实现,如线性表、字典、队列、栈等,极大简化了数据管理的复杂性。Java的集合体系如下。 (2) 单元素集合和键值对集合  Java 中的集合可以分为单元素集合和键值对集合两大类,其中单元素集合用于存储一组独立的对象,基类为 Collection;键值对集合则用于存储键值对,表示映射关系,基类为Map。它们的主要区别如下。2.基础接口(1) Collection接口 

正直朱的博客 765

Java基础,数据结构,List集合,List的子类,Set

数据存储的常见结构有:栈,队列,数组,链表和红黑树。

qq_69941834的博客 860

java list 泛型 子类_详细解读java语言的list集合泛型子类

本文主要向大家详细解读java语言的list集合泛型子类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。list集合中,只能添加泛型指定的类与其子类。以及不能添加基础类型,但可以添加基础类型的包装类。public class SuperCourse extends course {//SuperCourse类为course类的子类publicclasstestGranber{...

weixin_39954569的博客 746

JAVA集合的三种集合容器详解

JAVA框架有三种集合容器 1.Collection 2.Map 3. Array、Arrays 一、Collection Collection包含三个子类,List、Set、Queue. List List 元素可重复,且有序。ArrayList和LinkedList是List的子类。 集合名称 存储结构 时间复杂度 优缺点 ArrayList ...

阿尔法小师妹 1442

Java中的单列集合Collection:List集合,set集合,和数据结构

集合 集合1. 集合的由来2. 集合和数组的区别?3. 集合的功能1. 导包2. 创建集合(collection)对象3. 集合(collection)基本操作4. 集合转数组:toArray5. 迭代:iterator6. 迭代器(遍历)4. List集合1.导包2.创建list集合对象3.获取指定下标对应的元素4.获取(List集合)迭代器5.元素取代(add)和添加(set)6.移出指定下标和指定集合5.set集合1.导包2.案例分析 1. 集合的由来 容器(数组和StringBuffer),数组的

qq_49641620的博客 1538

集合(详细解析与分类)

用来存放多个对象的容器。集合主要是两组(单列集合、双列集合)。Collection接口有两个重要的子接口 List Set,它们的实现子类都是单列集合。Map接口的实现子类是双列集合,存放的Key-Value(键值对)是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素 JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。

weixin_67205556的博客 1854

Java容器之Collection、List、Map等集合

容器的概念 如果并不知道程序运行时会需要多少对象,或者需要更复杂的方式存储对象,可以使用Java集合框架 Java集合框架包含的内容 容器API Collection接口 Collection接口常用方法 1.Collection子类可以存储不同类型的数据 2.默认长度是10,容量不够时将自动扩容1.5倍 public class CollectionDemo{ public static void main(String[] args){ Collection collection = new

EquinoxPrime的博客 350

Java中的集合(上):概述、Collection集合、List集合及其子类

一、集合的体系结构 二、Collection集合 1.基本使用 如下代码 import java.util.ArrayList; import java.util.Collection; public class myCollection { public static void main(String[] args) { //创建...

weixin_30471065的博客 292

java list.foreach方法_Java 集合List及Map中forEach()方法

我们先看一个forEach()方法遍历List集合的例子://使用com.google.guava包创建集合List list =Lists.newArrayList("a","b","c","d");//遍历1 其中anyThing可以用其它字符替换list.forEach((anyThing)->System.out.println(anyThing));//遍历2list.forEa...

weixin_31640639的博客 4888

Java中的List集合

什么是集合?为什么需要有集合?lis集合包括?

weixin_52394141的博客 1855

浅谈集合List,Set以及Map集合的特点及区别

集合List Set以及Map的区别 要想了解三者的区别,我们想来看看java的集合框架图 接着就需要从它们各自的特点来说 1.List的主要特点及用法 1.1 可以允许存储重复的对象 1.2 可以插入多个null元素 1.3 是一个有序容器,保持了每一个元素的插入顺序,插入的顺序即输出的顺序 1.4 常用的实现类有 ArrayList、LinkedList 和 Vector。A...

qq_42894060的博客 8969
上一篇: sql之每天一个小函数之几个实用小函数
下一篇: SQL----每天一个小函数之常用函数汇总一
是番茄鱼啊
博客等级 码龄6年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值