- 浏览: 192145 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. ArrayList集合
2. LinkedList集合
3. ArrayList和LinkedList比较
ArrayList集合 add()方法,接收的是对象,不能放置原生数据类型,可以在指定的索引插入元素 get()方法 isEmpty()方法 remove()方法,将删除的值返回,如果需要可以获取到 clear()方法,清空集合 indexOf()方法,查询索引值 toArray()方法,接收数组时要强制转换成对应的类型,不能将Object[]转换为Integer[]。所以要在遍历数组的时候将Object类型转换成Ingeter类型。 1. ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组。 2. 如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的 1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。 3. 集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。 4. 集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。 import java.util.ArrayList; public class ArrayListTest2{ public static void main(String[] args){ ArrayList list = new ArrayList(); list.add("hello"); list.add(new Integer(2)); String str = (String)list.get(0); Integer in = (Integer)list.get(1); System.out.println(str); System.out.println(in.intValue()); } } 运行结果: hello 2
2. LinkedList集合
LinkedList集合 add()方法 addLast()方法 addFirst()方法 addLast()方法 remove()方法 set()方法 import java.util.LinkedList; public class LinkedListTest { public static void main(String[] args){ LinkedList list = new LinkedList(); list.add("F"); list.add("B"); list.add("D"); list.add("E"); list.add("C"); list.addLast("Z"); list.addFirst("A"); list.add(1, "A2"); System.out.println("最初的集合:" + list); list.remove("F"); list.remove(2); System.out.println("变化之后的集合:" + list); Object value = list.get(2); list.set(2, (String)value + "changed"); System.out.println("最后的集合:" + list); } } 运行结果: 最初的集合:[A, A2, F, B, D, E, C, Z] 变化之后的集合:[A, A2, D, E, C, Z] 最后的集合:[A, A2, Dchanged, E, C, Z]
3. ArrayList和LinkedList比较
1. ArrayList是实现了基于动态数组的数据结构,LinkedList是基于双向链表结构。 2. 对于随机访问的get和set方法,ArrayList要优于LinkedList,因为LinkedList要移动指针。 3. 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。 4. 对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。 对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配; 对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。 5. 在ArrayList集合中添加或者删除一个元素时,当前的列表所所有的元素都会被移动。而LinkedList集合中添加或者删除一个元素的开销是固定的。 6. LinkedList集合不支持高效的随机随机访问(RandomAccess),因为可能产生二次项的行为。 7. ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
发表评论
-
Java中获取IP地址、子网掩码、网关地址
2019-06-26 10:53 01. Java中获取IP地址、子网掩码、网关地址、ping连通 ... -
Java中ThreadLocal
2019-04-19 10:44 01. Java中ThreadLocal Java中的Th ... -
Java中原子性锁synchronized、Lock
2019-04-18 15:19 01. synchronized依赖JVM 1) 修饰代码 ... -
Java中原子性Atomic
2019-04-18 14:45 01. Atomic包简介 java.util.concu ... -
开发常用链接
2019-03-26 11:21 0在线工具:http://tool.oschina.net/ ... -
java1234学习目录
2019-03-21 11:08 01-01-01 N01 J2SEv2(41课时) ... -
Java中TCP和UDP
2018-10-25 10:55 3531. 网页内容获取 Url1.java impor ... -
Java中Thread线程
2018-10-25 09:38 3921. 实现线程的两种方式 1. 继承Thread类并重写 ... -
Java中serializable序列化
2018-10-24 14:46 4801. 序列化 transient不会被序列化。 imp ... -
Java中CharSet集
2018-10-24 11:31 5471. CharSet集 import java.nio. ... -
Java中RandomAccessFile类
2018-10-24 11:30 5101. RandomAccessFile类 1. 使用Ra ... -
Java中I/O的字符流InputStreamReader和OutputStreamWriter
2018-10-22 09:43 4461. InputStreamReader和OutputStre ... -
Java中其它输入输出流
2018-10-22 09:08 4771. ByteArrayInputStream流 以ar ... -
Java中I/O的OutputStream流
2018-10-22 08:54 4911. Java中I/O的OutputStream流 1. ... -
Java中I/O的InputStream流
2018-10-22 08:42 4691. Java中I/O的InputStream流 1. ... -
Java中I/O的File类
2018-10-19 13:45 4441. Java中I/O的File类 1. 在window ... -
Java中innerClass内部类
2018-10-18 09:37 4501. Java中innerClass内部类 用AA.BB ... -
Java中adapter适配器
2018-10-18 08:36 5901. Java中adapter适配器 适配器adapte ... -
Java中awt包
2018-10-17 11:26 17181. Java中awt包 AWT事件模型Event 1 ... -
Java中frame对象
2018-10-17 10:56 6841. Java中frame对象 1. Frame对象 ...
相关推荐
在 Java 中,ArrayList 和 LinkedList 是两种常用的集合类,它们各自具有不同的特性和适用场景,主要体现在数据结构、访问效率和操作性能上。 1. 数据结构: - ArrayList 实现了一个动态数组,它内部是一个 Object...
在Java编程语言中,ArrayList和LinkedList都是集合框架中两种重要的列表实现,它们分别基于不同的数据结构,具有不同的特性和性能特点。以下是对这两个类的详细分析: 1. 数据结构: - ArrayList是基于动态数组的...
在IT领域,特别是Java编程中,ArrayList和LinkedList是两种非常重要的数据结构,它们都是List接口的实现类。理解这两者的区别对于优化程序性能至关重要。面试官询问这些知识点,旨在评估应聘者的理论基础和实践能力...
在Java编程语言中,`ArrayList`与`LinkedList`都是`List`接口的具体实现类,用于存储元素集合。虽然它们都实现了同样的接口并且提供了相同的基本功能,但在内部实现机制、性能特点以及适用场景等方面存在显著差异。 ...
Collection 接口是 Java 中最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements)。Collection 接口提供了两个标准的构造函数:无参数的构造函数用于创建一个空的 Collection,有一...
本文将通过实例对比 Java 中 ArrayList 和 LinkedList 的实现机制、性能差异、优缺点等方面的区别,帮助读者更好地理解和选择合适的集合实现方式。 一、实现机制 ArrayList 的内部采用数组的方式存储数据,唯一...
今天,我们将深入了解 Java 中的集合类别,包括 ArrayList、Vector、LinkedList 和 Map 等。 ArrayList ArrayList 是一种基于数组的集合类别,它可以存储大量的数据。ArrayList 的特点是:它可以动态地增加或减少...
2. **线程安全**:ArrayList和LinkedList不是线程安全的,如果在多线程环境中使用,需要手动添加同步机制,或者选择Vector。 3. **内存消耗**:LinkedList比ArrayList和Vector占用更多的内存,因为它需要存储额外的...
在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...
迭代器(Iterator)提供了一种通用的方式来访问集合中的元素。迭代器的工作原理是通过 next() 方法返回元素,并可以通过 remove() 方法删除元素。 Collections 类提供了一些有用的方法,如排序、取最大和最小的元素...
ArrayList和LinkedList是Java集合框架中两种重要的动态数组实现,它们都是List接口的实现类,但它们在存储和操作数据方面有着显著的区别。本文件"arraylist-linkedlist-test.zip"主要探讨了在执行添加和删除元素操作...
如果集合中元素需要频繁地添加、删除,特别是在列表的中间位置,LinkedList因其高效的增删操作而更适合。在实际开发中,ArrayList由于其在数据展示(通常是大量的读取操作)上的优势,使用频率更高。然而,在某些...
在 Java 中,ArrayList 和 LinkedList 是两个常用的集合类,它们都是 List 接口的实现类,但它们之间有着鲜明的区别。今天,我们将深入探讨这两个集合类的实现原理和比较。 ArrayList 的实现原理 ArrayList 是基于...
在Java编程语言中,ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们都在java.util包中,用于存储和管理对象的集合。这三个类都实现了List接口,提供了多种操作方法,但它们在内部实现和性能特性上有所...
综上所述,理解并熟练运用List接口、ArrayList和LinkedList的不同特性,以及如何使用匿名类,对于编写高效的Java代码至关重要。在实际开发中,根据具体需求选择合适的数据结构,可以提高程序性能并降低复杂度。同时...
在Java编程中,ArrayList和LinkedList是两种常见的动态数组,它们都是Java集合框架的一部分,提供了对元素存储和操作的功能。本篇将深入探讨ArrayList和LinkedList的内部实现机制,通过源码分析来揭示它们在性能、...
Java编程语言中的`Map`, `List`, `ArrayList` 和 `LinkedList` 是四个核心的数据结构,它们在实际开发中被广泛使用。了解它们的源码对于深入理解Java集合框架的内部工作原理至关重要,尤其是对初学者而言,这有助于...
今天,我们将介绍 Java 集合系列中的三个重要成员:LinkedHashMap、LinkedList 和 ArrayList。 LinkedHashMap LinkedHashMap 是 Java 集合系列中的一种哈希表实现,继承自 HashMap。它的主要特点是可以维护元素的...
在Java中,ArrayList和LinkedList都是List接口的实现,它们都是存储一组不唯一、有序(插入顺序)的对象的集合。然而,它们在数据结构、性能和使用场景方面存在着很大的区别。 ArrayList ArrayList是基于动态数组...
List接口是Java集合框架中的重要组成部分,它是一个有序的集合,允许重复元素,并且保持插入顺序。List接口的实现类主要有ArrayList、LinkedList和Vector。 2. **ArrayList** - **实现原理**:ArrayList基于动态...