ICode9

精准搜索请尝试: 精确搜索
  • ConcurrentModificationException异常原因和解决方法2022-09-14 21:34:26

    ConcurrentModificationException异常原因和解决方法 首先看一下一个例子举出 ConcurrentModificationException 的出现场景: public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(){ { add(1); add(2

  • Java手写实现动态数组【数据结构与算法】2022-09-13 20:04:31

    1、数组 类型固定、长度固定 连续的内存空间 顺序存储、随机读取 查询快、新增删除慢。最好初始化的时候就指定数组大小。这样就可以避免一定的数组扩容出现的内存消耗。 import java.util.Arrays; import java.util.Iterator; /** * @author Administrator * @date 2022-09-1

  • Java手写实现栈【数据结构与算法】2022-09-13 20:02:40

    package algorithm; import java.util.Arrays; import java.util.Iterator; /** @author Administrator @date 2022-09-12 16:38 数组栈 */ public class MyArrayStack implements Iterable { // 定义一个数组 private Object[] elementData; // 顶部的索引 private int top

  • Iterator设计模式2022-08-24 02:00:39

    迭代器设计模式 用集合类实现Aggregate接口,并实现其iterator方法,生成特定的迭代器对象,但返回时返回为Iterator类型,以此来抽象编程,实现解耦合的目的。 类图:      当使用不同的集合实现类时,可以使用通用的代码,因为是面向接口编程,在循环中只使用了迭代器接口中的函数,达到了解耦的

  • 集合框架2----List实现类(ArrayList、vector、LinkedList)2022-08-14 12:04:58

    List实现类       ArrayList: ### 源码分析: DEFAULT_CAPACITY=10;默认容量(注意:如果没有向集合中添加任何元素,容量为0,添加一个元素之后,容量为10),每次扩容大小是原来的1.5倍。 elementData:存放元素的数组 size:实际大小 add():添加元素,代码如下: public boolean add(E e) {

  • 动态数组底层是如何实现的2022-08-04 14:34:08

    动态数组底层是如何实现的 引言: 提到数组,大部分脑海里一下子想到了一堆东西 int long short byte float double boolean char String 没错,他们也可以定义成数组 但是,上面都是静态的 不过,咱们今天学习的可是动态的(ArrayList 数组) 好接下来,我们一起来下面的内容 2.1 动态数组的位

  • ArrayList 方法2022-07-14 09:03:22

    @Override public int indexOf(Object o) { /** * 方法中首先判断了传入的对象是否为空,如果为空的话, * 会去遍历寻找数组中为空的对象,使用==的方式 */ if (o == null) { for (int i = 0; i < size; i++)

  • ArrayList源码深度剖析,从最基本的扩容原理,到魔幻的迭代器和fast-fail机制,你想要的这都有!!!2022-07-07 23:32:18

    ArrayList源码深度剖析 本篇文章主要跟大家分析一下ArrayList的源代码。阅读本文你首先得对ArrayList有一些基本的了解,至少使用过它。如果你对ArrayList的一些基本使用还不太熟悉或者在阅读本文的时候感觉有点困难,你可以先阅读这篇文章ArrayList设计与实现,自己动手写ArrayList。 A

  • 数组容器(ArrayList)设计与Java实现,看完这个你不懂ArrayList,你找我!!!2022-07-06 23:01:31

    数组容器(ArrayList)设计与Java实现 本篇文章主要跟大家介绍我们最常使用的一种容器ArrayList、Vector的原理,并且自己使用Java实现自己的数组容器MyArrayList,让自己写的容器能像ArrayList那样工作。在本篇文章当中首先介绍ArrayList的一些基本功能,然后去分析我们自己的容器MyArray

  • ArrayList源码解析 基于JDK1.82022-07-04 01:04:52

    1.问题产生原因 最近在写leetcode的题目https://leetcode.cn/problems/subsets/时,在评论区看到了一种解法,其中出现了 List<Integer> newNumber = new ArrayList<>(result); //result为List<Integer>类型 的代码语句,一般来说ArrayList的初始化为 List<Integer> some=new ArrayList

  • 每日一问--ArrayList、LinkedList、Vector者的异同2022-07-03 17:35:38

    ArrayList、LinkedList、Vector者的异同 相同点:     三个类都是实现了List接口;     存储数据的特点相同:存储序的、可重复的数据. 不同点: ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储.   LinkedList:对于频繁的插入、删除

  • ArrayList分析2 :Itr、ListIterator以及SubList中的坑2022-07-02 21:01:13

    ArrayList分析2 : Itr、ListIterator以及SubList中的坑 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/16409137.html 一.不论ListIterator还是SubList,均是对ArrayList维护的数组进行操作 首先我得说下ListIterator是什么,ListIterator 与Iterator均是迭代器接口,对应ArrayLis

  • ArrayList分析1-循环、扩容、版本2022-07-01 00:01:45

    ArrayList分析1-循环、扩容、版本 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/16407733.html 前段时间抽空看了下ArrayList的源码,发现了一些有意思的东东,真的是大受裨益哈,尤其是版本问题

  • 面试题总结-Java集合类系列(1)-ArrayList2022-06-28 11:38:52

    前言:为什么要写这篇文章?   现在是知识大爆炸的时代,任何面试题在网上都能找到一堆的答案,我为什么还需要写?   因为每个人的知识接受范围和接收程度是不一样的,你在网上找到的答案,简单了不稀罕看,答案难了又看不懂,或者文章语气看不习惯的,很少找到了非常适合自己的,很多知识还是碎片

  • ArrayList源码2022-06-11 02:31:09

    源码分析 ArrayList 默认容量 DEFAULT_CAPACITY = 10; // 是添加元素之后的默认容量,如果没有添加任何元素,容量为0 存放元素的数组 elementData 添加元素 size 实际元素个数 // 创建集合 size 0 容量 0 每次扩容会变成原来的1.5倍 ArrayList arrayList = new ArrayList<>();

  • Collection源码2022-06-11 02:00:44

    ArrayList源码   /** *添加元素, */ public boolean add(E e) { ensureCapacityInternal(size + 1); // 扩容 elementData[size++] = e; return true; } /** *ArrayList初始为空数组{},minCapacity第一次为1==》默认

  • 18_Java集合ArrayList2022-06-08 00:34:34

    ArrayList 集合可以理解为 存储引用类型元素 的数据容器,元素类型不限,但可以通过 指定类型参数 限制可以存储的数据类型。 常用方法 增添元素 // 在末尾添加元素 public boolean add(E e) // 在指定位置插入元素 public void add(int index, E element) 删除元素 // 删除指定

  • java collection转换为list2022-05-20 19:02:34

      public ArrayList(collection<?> extends E> c) { elementData = C. toArray();  size = elementData. length;  // c.toArray might (incorrectly) not return Object[] (see 6260652)  if (elementData. getClass() != Object[]. class)  elementData = Arrays .

  • JavaApi学习---ArrayList类2022-05-16 00:33:13

    ArrayList类常用方法 继承体系结构图 构造方法 public ArrayList() //默认Capacity=10 public ArrayList(int initialCapacity) //提供初始容量 提供的范围在0~Integer.MAX_VALUE = 2147483647 之间 public ArrayList(Collection<? extends E> c) //提供一个集合

  • ArrayList扩容机制探究2022-05-11 11:31:06

    一、ArrayList扩容机制探究 1.1 成员变量 //默认初始容量 private static final int DEFAULT_CAPACITY = 10; //空数组 private static final Object[] EMPTY_ELEMENTDATA = {}; //空数组,用于默认初始容量的,扩容时会使用 private static final Object[] DEFAULTCAPACITY_EMPTY_ELE

  • ArrayList源码分析(一)2022-05-04 18:35:02

    这篇blog进行ArrayList源码的相关分析,首先看看开头部分代码 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { @java.io.Serial //序列化uid private static final long serialVers

  • ArrayList 源码分析2022-04-30 15:01:27

    ArrayList 原理 ArrayList 是基于数组来实现的 数组长度是固定的,java 中的数组都是定长数组,比如数组大小设置为20,此时你不停的往 ArrayList 里面塞入数据,此时元素超过20以后就会自动扩容,就会用一个更大的数组,把以前的数组拷贝到新的数组里面去 ArrayList的优缺点 缺点 ① 不要

  • Java集合之ArrayList源码分析2022-04-25 16:33:50

    一、概述 ArrayList是一种变长的集合类,基于定长数组实现。ArrayList允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于ArrayList底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。其他方

  • ArrayList源码解析2022-04-13 20:35:12

    1.无参构造方法 //默认初始长度 private static final int DEFAULT_CAPACITY = 10; //初始空数组 private static final Object[] EMPTY_ELEMENTDATA = {}; //共享空数组 和 EMPTY_ELEMENTDATA 区分用来查看扩容多少 private static final Object[] D

  • Vector源码解读2022-04-05 12:34:01

    1.背景 阅读源码是提高编程技能的有效方式... 面试中也经常问到源码相关的问题..... 2.源码解读 在解读Vector时大家可以先解读ArrayList,因为这个两个的逻辑几乎是一样的.... ArrayList源码解读:https://www.cnblogs.com/newAndHui/p/16101626.html 区别在于 1.Vector的很多方法

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有