首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户7621540的专栏

    Arraylist 与 LinkedList面试题

    增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为 ArrayList 增删操作要影响数组内的其他数据的下标。 扩容:ArrayList 和 Vector 都会根据实际的需要动态的调整容量,只不过在 Vector 扩容每次会增加 1 倍,而 ArrayList 只会增加 50%。 四:Array 和 ArrayList 区别? Array 可以存储基本数据类型和对象,ArrayList 只能存储对象。 Array 是指定固定大小的,而 ArrayList 大小是自动扩展的。 Array 内置方法没有 ArrayList 多,比如 addAll、removeAll、iteration 等方法只有 ArrayList 有。 八、ArrayList的数据结构 ArrayList的底层数据结构就是一个数组,数组元素的类型为Object类型,对ArrayList的所有操作底层都是基于数组的。默认容量是10 ? ?

    1.5K20发布于 2020-09-16
  • 来自专栏cjz的专栏

    面试题: ArrayList 与 Vector 区别?

    可以由两个线程安全地访问一个 Vector对象.但是一个线程访问Vector 的话代码要在同步操作上耗费大量的时间 ArrayList不是同步的,所以在不需要保证线程安全时时建议使用ArrayList

    18420编辑于 2022-12-21
  • 来自专栏程序员修炼之路

    Android经典面试题ArrayList的原理,List和ArrayList的区别?

    欢迎点击上方"AntDream"关注我,每天进步一点点 ArrayList public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { /** * 默认ArrayList的容量为10 */ 4、 ArrayList不是线程安全的,只能用于单线程环境下 面试常问的一个问题 关于ArrayList一个常问的问题就是List和ArrayList的区别 实际上答案很简单,就是一个是接口一个是具体实现的关系 ,ArrayList是List的其中一个具体实现类。 以上是基于Java1.8并且只介绍了常用的一些方法的原理,详细的ArrayList源码请查看:ArrayList源码 END 点亮【赞和在看】,让钱和爱都流向你。

    34210编辑于 2024-07-10
  • 来自专栏别明天就今天吧

    面试题-List之ArrayList、Vector、SynchronizedList、CopyOnWriteArrayList

    容器中的List在我们日常开发中,比较常用,而且也是面试的必考题,下面我们来说下List家族的各种实现; 1.ArrayList ArrayList底层是数组实现,顺序插入,可以通过下标查找元素 2个值是null,这样就出现了问题;同时遍历时需改也存在java.util.ConcurrentModificationException异常; 2.Vector Vector底层也是数组,它和ArrayList 的区别在于add、set、get方等法上都加了synchronized关键字,这样就保证了多线程下的线程安全问题,但是效率不如ArrayList; 3.SynchronizedList SynchronizedList

    87840发布于 2020-09-07
  • 来自专栏爪哇缪斯

    面试题4:ArrayList与LinkedList的区别?

    首先,他们的底层数据结构不同,ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的。 由于底层数据结构不同,他们所适用的场景也是不同的,ArrayList更适合随机查找,LinkedList更适合删除和添加; 另外ArrayList和LinkedList都实现了List接口,但是LinkedList ArrayList源码流程图: LinkedList源码解析:

    18010编辑于 2023-05-09
  • 来自专栏须臾之余

    ArrayList和CopyOnWriteArrayList面试题总结与源码分析

    面试题 (1)ArrayList和CopyOnWriteArrayList的增删改查实现原理? (2)为什么说ArrayList查询快而增删慢? (3)弱一致性的迭代器原理是怎么样的? (1)ArrayList和CopyOnWriteArrayList的增删改查实现原理? ArrayList类图 ? CopyOnWriteArrayList类图 ? ("hello"); arrayList.add("alibaba"); arrayList.add("to"); arrayList.add("hangzhou ,然后再启动线程前获取到了arrayList迭代器。 子线程thread启动后首先修改了arrayList的第一个元素的值,然后删除了arrayList对应下标的元素。

    1.9K40发布于 2019-07-19
  • 来自专栏cwl_Java

    经典面试题-ArrayList、LinkedList和Vector的区别

    本文链接:https://blog.csdn.net/weixin_42528266/article/details/103106176 ArrayList:底层数据结构是数组,运行所有元素,包括null

    58210发布于 2019-11-18
  • 来自专栏朱永胜的私房菜

    面试题精讲】ArrayList 和 Vector 的区别?

    ArrayList ArrayList内部使用一个Object类型的数组来保存元素。 ArrayList和Vector的使用示例 下面是ArrayList和Vector的使用示例: import java.util.ArrayList; import java.util.Vector; ArrayList<String> arrayList = new ArrayList<>();         arrayList.add("apple");         arrayList.add vector.add(20);         vector.add(30);         System.out.println(vector.size());  // 输出:3     } } 5. ArrayList和Vector的缺点 线程安全性:ArrayList不是线程安全的,如果多个线程同时修改ArrayList可能会导致数据不一致。

    58440编辑于 2023-10-22
  • 来自专栏朱永胜的私房菜

    面试题精讲】ArrayList 和 Array(数组)的区别?

    为什么需要ArrayList和Array(数组)? ArrayList:由于ArrayList可以动态调整大小,因此非常适合在运行时添加、删除或修改元素的情况下使用。 ArrayList和Array(数组)的区别 大小调整: ArrayListArrayList可以根据需要自动增长或缩小其容量。 ArrayList和Array(数组)的使用示例 // 使用ArrayList ArrayList<String> list = new ArrayList<>(); list.add("apple")  = "orange"; System.out.println(array[0]); // 输出 "apple" System.out.println(array.length); // 输出 3 5. ArrayList和Array(数组)的缺点 ArrayList的缺点: 相比于数组,ArrayList占用更多的内存空间。

    70850编辑于 2023-10-22
  • 来自专栏FREE SOLO

    2019面试题:请解释ArrayList和Vector的区别?

    面试题:请解释ArrayList和Vector的区别? No. 实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。 ArrayList类   ArrayList实现了可变大小的数组。它允许所有元素,包括null。 Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。 尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。 而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的。

    70600发布于 2019-04-18
  • 来自专栏朱永胜的私房菜

    面试题精讲】ArrayList 可以添加 null 值吗

    ArrayList 是 Java 中的一个动态数组,可以存储任意类型的对象。在 ArrayList 中是可以添加 null 值的。 ) {         ArrayList<String> list = new ArrayList<>();                  list.add(null);         list.add 最后打印输出整个 ArrayList 的内容。 需要注意的是,在使用 ArrayList 存储 null 值时,要确保 ArrayList 的泛型类型允许为 null。 例如,如果声明 ArrayList<int> 这样的列表,则无法将 null 添加到该列表中,因为 int 类型不允许为 null。 总结: ArrayList 可以添加 null 值。 在使用 ArrayList 存储 null 值时,要确保 ArrayList 的泛型类型允许为 null。

    74520编辑于 2023-10-22
  • 来自专栏Java那些事

    ArrayList

    因为我们在使用ArrayList的时候一般不会设置初始值的大小,那ArrayList默认的大小就刚好是10。 ? 不知道大家看懂arraycopy的代码没有,我画个图解释下,你可能就明白一点: 比如有下面这样一个数组我需要在index 5的位置去新增一个元素A ? 那从代码里面我们可以看到,他复制了一个数组,是从index 5的位置开始的,然后把它放在了index 5+1的位置 ? 继续打个比方,我们现在要删除下面这个数组中的index5这个位置 ? 那代码他就复制一个index5+1开始到最后的数组,然后把它放到index开始的位置 ? index5的位置就成功被”删除“了其实就是被覆盖了,给了你被删除的感觉。 同理他的效率也低,因为数组如果很大的话,一样需要复制和移动的位置就大了。 ArrayList是线程安全的么?

    1.1K20发布于 2020-02-12
  • 来自专栏后端技术

    ArrayList

    ArrayList(Collection<? extends E> c) public ArrayList(Collection<?

    73130发布于 2019-05-25
  • 来自专栏后端码匠

    ArrayList

    ArrayList简介   ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。 () = %d\n",arrayList.size()); arrayList.add(1); arrayList.add(3); arrayList.add (5); arrayList.add(7); arrayList.add(9); System.out.printf("After add:arrayList.size (2); // 删除指定元素 arrayList.remove((Object)3); // 判断arrayList是否包含5 System.out.println("ArrayList contains 5 is: " + arrayList.contains(5)); // 清空ArrayList

    1.5K30发布于 2019-09-30
  • 来自专栏开发笔记

    DEBUG ArrayList

    1,ArrayList面试必问 说说ArrayList和LinkedList的区别? ArrayList基于数组实现,LinkedList基于链表实现,不同的数据结构决定了ArrayList查询效率比较高,而LinkedList插入删除效率比较高,反过来就比较慢了。 ArrayList默认初始容量为多少?按照几倍来扩容? 10,1.5倍。 说说数组扩容的原理? ArrayList扩容调用的是Array.copyof函数,把老数组遍历赋值给新数组返回。 说说ArrayList常见方法的时间复杂度? ArrayList和vector的区别 最大的区别在于线程是否安全 其次Vector是两倍扩容 最后就是在不指定大小的情况下,ArrayList容量初始化是在添加元素的时候,而Vector有一个无参构造器直接初始化为

    1.1K20发布于 2020-07-21
  • 来自专栏全栈开发工程师

    ArrayList详解

    一、概述 1、概述 基于数组实现,查询快,增删慢; 没有同步锁,多线程不安全; 自动扩容,使用方便; 2、基于数组实现,查询快,增删慢 ArrayList底层基于数组实现,元素连续存储 之前的元素到新的数组 * 效率较低,最好初始化一个较为合适的长度,减少扩容次数 */ // 无参构造,赋值一个空数组,当添加第一个元素的时候初始化容量为10 public ArrayList { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } // 指定初始容量大小的构造函数 public ArrayList 1、概述 * 1、使用List<String> list = new Vector<>();,这个答案对,但是一个很笨拙的答案;(不推荐) * 2、让ArrayList变得安全:List<String> list = Collections.synchronizedList(new ArrayList<>());(不推荐) * 3、JUC的解决方案:List<String> list = new CopyOnWriteArrayList

    54010编辑于 2025-01-06
  • 来自专栏编码前线

    JAVA面试50讲之5:Vector,ArrayList,LinkedList的区别

    List集合默认按元素    的添加顺序设置元素的索引 2.1) ArrayList ArrayList是基于数组实现的List类,它封装了一个动态的增长的、允许再分配的 所引用的对象没有被其他强引用变量所引用,则这些key所引用的对象可能被垃圾回收,当垃   圾回收了该key所对应的实际对象之后,WeakHashMap也可能自动删除这些key所对应的key-value对 5) 5、Vector实现了Cloneable接口、此接口只有声明、没有方法体、表示Vector支持克隆。 关于ArrayList源码详解,可参考ArrayList 3.3.LinkedList的特点 是一个双链表,在add和remove时比ArrayList性能好,但get和set时就特别慢了。 List接口、使其可以内部存储元素有序并且为每个元素提供索引值、 4、LinkedList直接实现了Deque接口、Deque接口继承了Queue、使其可以作为双向链表这种数据结构来使用、操作元素、 5

    2.2K10发布于 2019-01-02
  • 来自专栏Y.

    ArrayList简介

    在集合框架中,ArrayList是一个普通的类,实现了List接口。 ArrayList 是以泛型方式实现的,使用时必须要先实例化。 ArrayList 底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。 1.ArrayList 的使用 public static void main(String[] args) { //构建一个空的列表 List<Integer> list ArrayList<>(list1); //避免省略类型,否则,任意类型的数据都可以存放 List list3 = new ArrayList(); } 2 .ArrayList的常见方法 ArrayList 虽然提供的方法比较多,但是常用方法如下所示; 方法 功能 boolean add (E e) 结尾插

    32810编辑于 2024-01-23
  • 来自专栏Java阿呆

    浅谈ArrayList

    一、ArrayList的继承体系和特点 ArrayList总体继承体系图如下: ? ArrayList的特点主要有以下几点: ArrayList在内存中分配连续的存储空间,可理解为长度可变的数组。 ArrayList存储元素可以重复,存储顺序和添加顺序一致。 二、ArrayList的用法 List<String> list = new ArrayList<String>();//使用多态创建ArrayList,泛型指定该ArrayList只能放String类型的元素 for(int i=0;i<5;i++) list.add("a"+i);//架循环往ArrayList里添加元素 System.out.println(list);/ System.out.println(list); 输出结果: [a0, a1, a2, a3, a4] [a0, a1, a2, a0, a3, a4] [a0, a1, a0, a3, a4] 5

    1K20发布于 2020-11-04
  • 来自专栏全栈程序员必看

    arraylist的基本方法_什么是arraylist

    成员变量 ArrayList 底层是基于数组来实现容量大小动态变化的。 构造一个初始容量大小为 initialCapacity 的 ArrayList public ArrayList(int initialCapacity) { if (initialCapacity 使用指定 Collection 来构造 ArrayList 的构造函数 public ArrayList(Collection<? 接下来是关键,直接调用 ArrayList 的 remove 方法删除下标为 lastRet 的元素。 转自:https://juejin.im/post/5a90c37af265da4e83267f8e 资源分享 Java基础到Java实战全套学习视频教程,包括多个企业级实战项目:https://urlify.cn

    1.2K20编辑于 2022-11-09
领券