java list相关源码笔记

ArrayList的长度扩容是以1.5倍,比如原来是100,扩容之后就是150,源码是进行位运算oldCapacity >> 1

1、ArrayList的add方法的核心方法:Arrays.copyOf(T[] original, int newLength),

original:原始数组

newLength:新数组的长度

比如将一个长度为6的数组变成一个长度为8的数组

String[] arr = {"A", "B", "C", "D", "E", "F"}; arr = Arrays.copyOf(arr, 8);

结果就是:String[] arr = {"A","B","C","D","E","F",null,null};

2、ArrayList的Removce方法的核心方法:System.arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);   

src:要复制的数组(源数组)

srcPos:复制源数组的起始位置

dest :目标数组

destPos:目标数组的下标位置

length: 要复制的长度

比如:从下标为2的位置开始复制,复制的长度为2(复制C、D),从下标为3的位置开始替换为D、E

String[] arr = {"A", "B", "C", "D", "E", "F"}; System.arraycopy(arr, 2, arr, 3, 2);

结果就是:String[] arr = {"A","B","C","C","D","F"};

关于Vector类型的相关笔记描述:

此类型,和ArrayList可以说是基本一致,但是此类型是线程安全的,可以看add方法和get等方法,都加了synchronized关键字。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

00:Java简单了解

浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

java list相关源码笔记 - HelloWorld