草庐IT

Arraylist

全部标签

java - Java中的ArrayList和多线程

在什么情况下不同步的集合,比如ArrayList,会导致问题?我想不出任何问题,有人可以给我一个例子,其中ArrayList导致问题,而Vector解决问题?我编写了一个有2个线程的程序,它们都修改了一个具有一个元素的数组列表。一个线程将“bbb”放入arraylist,而另一个线程将“aaa”放入arraylist。我真的没有看到字符串被修改了一半的实例,我在这里是在正确的轨道上吗?另外,我记得有人告诉我,多个线程并没有真正同时运行,一个线程运行了一段时间,然后另一个线程运行(在具有单个CPU的计算机上)。如果这是正确的,那么两个线程怎么可能同时访问相同的数据呢?也许线程1会在修改某

java - Java中的ArrayList和多线程

在什么情况下不同步的集合,比如ArrayList,会导致问题?我想不出任何问题,有人可以给我一个例子,其中ArrayList导致问题,而Vector解决问题?我编写了一个有2个线程的程序,它们都修改了一个具有一个元素的数组列表。一个线程将“bbb”放入arraylist,而另一个线程将“aaa”放入arraylist。我真的没有看到字符串被修改了一半的实例,我在这里是在正确的轨道上吗?另外,我记得有人告诉我,多个线程并没有真正同时运行,一个线程运行了一段时间,然后另一个线程运行(在具有单个CPU的计算机上)。如果这是正确的,那么两个线程怎么可能同时访问相同的数据呢?也许线程1会在修改某

java - ArrayList 初始容量和 IndexOutOfBoundsException

这个问题在这里已经有了答案:InitialsizefortheArrayList(16个答案)关闭6年前。考虑这个示例代码:ListmyList=newArrayList(7);myList.add(5,"Hello");myList.removeAll(Collections.singleton(null));System.out.println(myList.size()+"objects:");for(Strings:myList){System.out.println("\t"+s);}myList以初始容量7进行初始化,然后下一行尝试在位置5处添加字符串“Hello”。这将引

java - ArrayList 初始容量和 IndexOutOfBoundsException

这个问题在这里已经有了答案:InitialsizefortheArrayList(16个答案)关闭6年前。考虑这个示例代码:ListmyList=newArrayList(7);myList.add(5,"Hello");myList.removeAll(Collections.singleton(null));System.out.println(myList.size()+"objects:");for(Strings:myList){System.out.println("\t"+s);}myList以初始容量7进行初始化,然后下一行尝试在位置5处添加字符串“Hello”。这将引

java - Java ArrayList 的时间复杂度

我发现此问题的其他条目涉及特定方法,但并不全面。我想验证一下我自己对这种数据结构最常用方法的理解:O(1)-恒定时间:isEmpty()add(x)add(x,i)set(x,i)size()get(i)remove(i)O(N)-线性时间:indexof(x)clear()remove(x)remove(i)这是正确的吗?感谢您的帮助。 最佳答案 最好的资源直接来自officialAPI:Thesize,isEmpty,get,set,iterator,andlistIteratoroperationsruninconstantt

java - Java ArrayList 的时间复杂度

我发现此问题的其他条目涉及特定方法,但并不全面。我想验证一下我自己对这种数据结构最常用方法的理解:O(1)-恒定时间:isEmpty()add(x)add(x,i)set(x,i)size()get(i)remove(i)O(N)-线性时间:indexof(x)clear()remove(x)remove(i)这是正确的吗?感谢您的帮助。 最佳答案 最好的资源直接来自officialAPI:Thesize,isEmpty,get,set,iterator,andlistIteratoroperationsruninconstantt

【ArrayList】| 深度剥析Java SE 源码合集Ⅵ

目录一.概述二.🦁深度探索1.类图2.属性3.构造方法4.添加单个元素5.数组扩容6.添加多个元素7.移除单个元素8.移除多个元素9.查找单个元素10.获得指定位置的元素11.设置指定位置的元素12.转换成数组13.求哈希值14.判断相等15.清空数组16序列化数组17.反序列化数组18.克隆19.创建子数组20.创建Iterator迭代器21.创建Lis

java - 哪个 list<Object> 实现对于一次写入、读取和销毁来说是最快的?

在一次创建列表一个元素然后在稍后一次读取一个元素的情况下,最快的列表实现(在java中)是什么?读取将使用迭代器完成,然后列表将被销毁。我知道get的BigO表示法是O(1),而ArrayList的add是O(1),而LinkedList的get是O(n),add是O(1)。迭代器是否使用相同的大O表示法? 最佳答案 这很大程度上取决于您是否预先知道每个列表的最大大小。如果这样做,请使用ArrayList;它肯定会更快。否则,您可能需要进行概要分析。虽然访问ArrayList是O(1),但创建它并不简单,因为动态调整大小。要考虑的另

java - 哪个 list<Object> 实现对于一次写入、读取和销毁来说是最快的?

在一次创建列表一个元素然后在稍后一次读取一个元素的情况下,最快的列表实现(在java中)是什么?读取将使用迭代器完成,然后列表将被销毁。我知道get的BigO表示法是O(1),而ArrayList的add是O(1),而LinkedList的get是O(n),add是O(1)。迭代器是否使用相同的大O表示法? 最佳答案 这很大程度上取决于您是否预先知道每个列表的最大大小。如果这样做,请使用ArrayList;它肯定会更快。否则,您可能需要进行概要分析。虽然访问ArrayList是O(1),但创建它并不简单,因为动态调整大小。要考虑的另

java - 什么是 List 与 ArrayList?

这个问题在这里已经有了答案:TypeListvstypeArrayListinJava[duplicate](15个回答)关闭9年前。这两个对象的根本区别是什么?一个更有效率吗?有更多的方法吗? 最佳答案 List在接口(interface)中,而ArrayList是一个类。见ArrayList,和List.例如,您不能使用此设置:Listlist=newList();...因为它是一个接口(interface)。但是,这是可行的:ArrayListarrayList=newArrayList();另外...您可以按照duffymo