我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java中List接口怎么实现类

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java中List接口怎么实现类

这篇文章主要讲解了“java中List接口怎么实现类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中List接口怎么实现类”吧!

List接口介绍—ArrayList

有序、可重复

线程不安全,因为没有synchronized修饰

ArrayList源码结论

ArrayList中维护了一个Object类型的数组elementData。

transient Object[] elementData; // transient 表示该属性不会被序列化

当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第一次添加,则扩容elementData为10,如果需要再次扩容,则扩容elementData为1.5倍

如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍。

ArrayList源码分析

List list =  new ArrayList();        for(int i = 0; i < 10; i++) {            list.add(1);        }

容器初始化为一个空数组

public ArrayList() {        this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;    }    private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

执行add方法

public boolean add(E e) {        ensureCapacityInternal(size + 1);  // Increments modCount!!        elementData[size++] = e;        return true;    }

先确定是否要扩容

再执行扩容操作

private void ensureCapacityInternal(int minCapacity) {        if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {            minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); //(10,1)        }        ensureExplicitCapacity(minCapacity);    }

先确定elementData是否是空数组,如果是空数组就赋给minCapacity最小容量10(DEFAULT_CAPACITY为10)

private void ensureExplicitCapacity(int minCapacity) {        modCount++; //记录当前集合被修改的次数        // overflow-conscious code        if (minCapacity - elementData.length > 0)             grow(minCapacity);    }

如果最小容量大于elementData实际大小的话,就执行扩容

private void grow(int minCapacity) {        // overflow-conscious code        int oldCapacity = elementData.length;        int newCapacity = oldCapacity + (oldCapacity >> 1); //扩容为1.5倍        if (newCapacity - minCapacity < 0) //newCapacity=0 第一次的时候执行            newCapacity = minCapacity;        if (newCapacity - MAX_ARRAY_SIZE > 0)            newCapacity = hugeCapacity(minCapacity);        // minCapacity is usually close to size, so this is a win:        elementData = Arrays.copyOf(elementData, newCapacity);    }

感谢各位的阅读,以上就是“java中List接口怎么实现类”的内容了,经过本文的学习后,相信大家对java中List接口怎么实现类这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java中List接口怎么实现类

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java中List接口怎么实现类

这篇文章主要讲解了“java中List接口怎么实现类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中List接口怎么实现类”吧!List接口介绍—ArrayList有序、可重复线程不
2023-06-22

Java中抽象类和接口怎么实现

本篇内容介绍了“Java中抽象类和接口怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、抽象类1.1 什么是抽象类?1.1.1 对抽
2023-06-26

java怎么创建接口实现类

这篇“java怎么创建接口实现类”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎么创建接口实现类”文章吧。本教程操作
2023-06-30

Java中SimpleDateFormat类和List接口的使用

本篇内容主要讲解“Java中SimpleDateFormat类和List接口的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中SimpleDateFormat类和List接口的使用”
2023-06-15

怎么在java中创建一个接口实现类

这期内容当中小编将会给大家带来有关怎么在java中创建一个接口实现类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型
2023-06-14

Java中的接口怎么实现

这篇文章主要介绍“Java中的接口怎么实现”,在日常操作中,相信很多人在Java中的接口怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中的接口怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-03

怎么在TypeScript中实现接口的类

这篇文章主要介绍“怎么在TypeScript中实现接口的类”,在日常操作中,相信很多人在怎么在TypeScript中实现接口的类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在TypeScript中实现接
2023-07-05

java中set转list怎么实现

可以通过以下方式将Set转换为List:使用ArrayList构造函数:Set set = new HashSet();// 添加元素到set中List list = new ArrayList(s
java中set转list怎么实现
2024-03-13

java怎么实现runnable接口

在Java中,通过实现Runnable接口来创建线程是一种常见的做法。下面给出一个简单的示例代码,演示如何实现Runnable接口:```javapublic class MyRunnable implements Runnable {@O
2023-09-16

java serializable接口怎么实现

要实现Java的Serializable接口,只需要在类声明中添加`implements Serializable`即可。例如:```javaimport java.io.Serializable;public class MyClass
2023-10-11

C#中怎么实现接口和抽象类

在C#中,可以通过以下方式来实现接口和抽象类:接口:interface IExampleInterface{void Method1();void Method2();}public class ExampleClass : IEx
C#中怎么实现接口和抽象类
2024-04-03

Java 中怎么实现一个Runnable接口

这期内容当中小编将会给大家带来有关Java 中怎么实现一个Runnable接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。但是Java Runnable 接口并没有任何对线程的支持,我们还必须创建 Th
2023-06-17

java如何创建接口实现类

在 Java 中,可以使用 `implements` 关键字来创建接口的实现类。具体步骤如下:1. 定义一个接口,在接口中声明需要实现的方法。```javapublic interface MyInterface {void myMetho
2023-08-24

C#中怎么利用类实现一个接口

这篇文章给大家介绍C#中怎么利用类实现一个接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#类实现接口前面我们已经说过,接口定义不包括方法的实现部分。接口可以通过类或结构来实现。我们主要讲述通过类来实现接口。用类来
2023-06-17

Java顺序接口怎么实现

本篇内容介绍了“Java顺序接口怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!顺序是一个设置(settings)的有序集合。顺序的每
2023-06-03

Java的Collection接口怎么实现

这篇文章主要介绍“Java的Collection接口怎么实现”,在日常操作中,相信很多人在Java的Collection接口怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Collection
2023-06-02

java中抽象类、抽象方法、接口与实现接口实例详解

前言对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的的啦(不要误会,我指的只是我自己啦啦
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录