首页 > 编程语言 >java学习日记20230411-ArrayList

java学习日记20230411-ArrayList

时间:2023-04-12 21:56:11浏览次数:40  
标签:java get ArrayList elementData 20230411 add objects null

ArraylList注意事项

  1. ArrayList可以加入null,并且多个;
  2. ArrayList是由数组来实现数据存储的
  3. ArrayList基本等同于Vector,处理ArrayList是线程不安全(执行效率高),在多线程情况下,不建议使用ArrayLIst

  

ArrayList示例

public class ArrayList01 {
    public static void main(String[] args) {
        ArrayList objects = new ArrayList();
        objects.add(null);
        objects.add(null);
        objects.add(3);
        objects.add(2,"null");
        System.out.println(objects.get(1).getClass());
        if(objects.get(0) ==objects.get(2)){
            System.out.println("1=1");
        }
        System.out.println(objects);
    }
}

 ArrayList底层源码分析

  transient表示瞬间的,表示该属性不会被序列化;

  • Arraylist中维护了一个Object类型的数组elementData,transient Object[] elementData;
  • 当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第一次添加扩容elementData为10,如果需要再次扩容,则扩容elementData为1.5倍;
  • 如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,直接扩容elementData为1.5倍
  • Idea默认情况下,debug显示的数据是简化,需要进行debugger设置

标签:java,get,ArrayList,elementData,20230411,add,objects,null
From: https://www.cnblogs.com/DragonJack/p/17308110.html

相关文章

  • Java并发编程的艺术
    回复并发编程的艺术即可获取《Java并发编程的艺术》正是为了解决这个问题而写的。书中采用循序渐进的讲解方式,从并发编程的底层实现机制入手,逐步介绍了在设计Java并发程序时各种重要的技术、设计模式与应用,同时辅以丰富的示例代码,使得开发人员能够更快地领悟Java并发编程的要领,围绕......
  • java -- 二维数组
    基本概念在Java中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。创建及初始化//创建方式和数组相似第一个中括号表示行,第二个中括号表示列//......
  • java多线程 - 狂神
    多线程实现方法第一种方法:Thread自定义线程类继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程注意:线程不一定立即执行,由CPU安排调度继承Thread类创建多线程packagecom.waves.dxcdemo;​importjava.text.DateFormat;importja......
  • 二叉树的前、中、后序遍历以及查找-Java实现
    对于遍历不过多的赘述,关于查找有关的思想,关键是如何实现查找的顺序以及结果的回传;附代码1packagedataSrtuct;23publicclassBinaryTreeDemo{4publicstaticvoidmain(String[]args){5BinaryTreebinaryTree=newBinaryTree();6......
  • 带大家认识 java Script
    认识JavaScript1. JavaScript简称JS2. JavaScript是开发Web页面的脚本语言3. JavaScript发布于1995年的Netscape(网景)公司4. JavaScript截止到2012年所有浏览器都完整的支持ECMAScript5.1,旧版本的浏览器至少支持ECMAscript......
  • Java: 为Word文档添加水印
    Java:为Word文档添加水印原文链接:https://www.cnblogs.com/Gia-/p/16617148.htmlJava:为Word文档添加水印添加水印是文档操作中一个非常实用的功能,通过给文档添加指定文字或图片水印既可以标识文档的状态,也可以维护文档版权,丰富其外观。在这篇文章中,我将从以下四个板块介绍......
  • Javaweb文件上传至服务器/从服务器下载
    Javaweb文件上传至服务器/从服务器下载思路图文件上传思路:也可以直接看代码判断是不是文件表单(判断form的enctype是不是="multipart/form-data"),因为只有文件表单才能上传文件创建DiskFileItemFactory对象,用于构建一个解析上传数据的工具对象创建一个解析上传......
  • JavaWeb技术栈图(web服务器+web容器是何物)
    JavaWeb技术栈图(web服务器+web容器是何物)两个重要概念web服务器+web容器什么是Web服务器?Tomcat服务器就是一个免费的开放源代码的Web应用服务器web服务实际上就是解析了客户端/浏览器发来的http请求,并将其做出一定的处理。比如说将请求头和请求体中的各个元素拆开打包成一......
  • JavaScript基础知识
    JavaScript基础知识JavaScript是什么?JavaScript是一门编程语言,可以实现很多的网页交互效果。开web页面的脚本语言JavaScript的书写位置?内部JavaScript写在body结束标签上方script里面外部JavaScript通过scriptsrc=引入js文件但是script里面不要写内容,否则会被忽略JavaSc......
  • JavaWeb之Servlet详解(以及浏览器调用 Servlet 流程分析图)
    Servlet1.什么是ServletServlet(java服务器小程序)他是由服务器端调用和执行的(一句话:是Tomcat解析和执行)他是用java语言编写的,本质就是Java类他是按照Servlet规范开发的(除了tomcat->Servletweblogic->Servlet)功能强大,可以完成几乎所有的网站功能2.开发......