Java连载86-List集合详解

一、List集合

1.List集合存储元素的特点:

(1)有序(List集合中存储有下标)?:存进去是这样的顺序,取出来还是按照这个顺序取出?。

(2)可重复

2.深入ListJ集合

ArrayList集合底层是数组,数组?是有下标的;所以ArrayList集合有很多自己的特性?;ArrayList集合底层默认初始化容量是10,扩大之后的容量是原容量的1.5倍?;Vector集合底层默认初始化容量为10,扩大之后的容量是原容量的两倍

3.如何优化ArrayList和Vector

尽量减少扩容操作,因为扩容需要数组拷贝,数组拷贝是很耗内存的,一般推荐在创建集合的时候指定初始化容量

package com.bjpowernode.java_learning;

import java.util.*;

?

public class D86_1_ListCollectionAnalysis {

  public static void main(String[] args) {

    //创建一个List集合

    //Collection c = new ArrayList();//这样初始化一个列表编译没问题,但是我们就不用能用List特有的方法了

    List l = new ArrayList();

    //List l = new LinkedList();//这两种初始化方式哪种都可以,这就涉及到底层的数据结构问题了,可参见《算法》一书

    //向列表的尾部添加元素

    l.add(100);

    l.add(99);

    l.add(23);

    l.add(250);

    l.add("hiosaf");

    //add(int index,E e)向指定位置插入e

    l.add(5,"jioasf");

    System.out.println(l.get(1));

    System.out.println("====================");

    //遍历

    Iterator it = l.iterator();

    while(it.hasNext()) {

      System.out.println(it.next());

    }

    //这也看出来,既可以使用迭代器来遍历,也可以使用get方法进行遍历

  }

}

?

二、源码:

D86_1_ListCollectionAnalysis.java?

https://github.com/ruigege66/Java/blob/master/D86_1_ListCollectionAnalysis.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

原文地址:https://www.cnblogs.com/ruigege0000/p/12339907.html

时间: 2024-11-10 09:00:30

Java连载86-List集合详解的相关文章

Java连载98-FileReader和FileWriter详解

一.FileReader详解 1.java.io.Reader java.io.InputStreamReader;转换流(字节输入流--->字符输入流) java.io.FileReader?:文件字符输入流 2.java.io.Writer java.io.OutputStreamWriter;转换流(字节输出流-->字节输出流) java.io.FileWriter;文件字符输出流 package com.bjpowernode.java_learning; import java.io

Java连载39-构造方法详解

?一. 1.多行注释:CTRL + shift + / 2.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器. public class D39_ { public static void main(String[] args) { new User(); } } 编译通过,我们事先定义了一个类User,里面没有构造方法. 3.当一个类显式的将构造方法定义出来了,那么系统则不再默认提供缺省的构造器.建议开发中,手动的为当前类提供无参数的构造

Java集合详解6:TreeMap和红黑树

Java集合详解6:TreeMap和红黑树 初识TreeMap 之前的文章讲解了两种Map,分别是HashMap与LinkedHashMap,它们保证了以O(1)的时间复杂度进行增.删.改.查,从存储角度考虑,这两种数据结构是非常优秀的.另外,LinkedHashMap还额外地保证了Map的遍历顺序可以与put顺序一致,解决了HashMap本身无序的问题. 尽管如此,HashMap与LinkedHashMap还是有自己的局限性----它们不具备统计性能,或者说它们的统计性能时间复杂度并不是很好才

Java集合详解2:LinkedList和Queue

Java集合详解2:LinkedList和Queue 今天我们来探索一下LinkedList和Queue,以及Stack的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/09/collection2 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a724888 我的个

Java集合详解7:HashSet,TreeSet与LinkedHashSet

Java集合详解7:HashSet,TreeSet与LinkedHashSet 今天我们来探索一下HashSet,TreeSet与LinkedHashSet的基本原理与源码实现,由于这三个set都是基于之前文章的三个map进行实现的,所以推荐大家先看一下前面有关map的文章,结合使用味道更佳. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.github.io/2018/05/12/colle

Java集合详解5:深入理解LinkedHashMap和LRU缓存

Java集合详解5:深入理解LinkedHashMap和LRU缓存 今天我们来深入探索一下LinkedHashMap的底层原理,并且使用linkedhashmap来实现LRU缓存. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.github.io/2018/05/11/collection5 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net

Java集合详解3:Iterator,fail-fast机制与比较器

Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/9/collection3 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a72

Java集合详解4:HashMap和HashTable

Java集合详解4:HashMap和HashTable 今天我们来探索一下HashMap和HashTable机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/10/collection4 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a724888 我的个

Java集合详解6:这次,从头到尾带你解读Java中的红黑树

<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star.fork哈 文章首发于我的个人博客: www.how2playlife.com 什么是红黑树 首先,什么是红黑树呢? 红黑树是一种"平衡的"二叉查找树,它是一种经典高效的算法,能够保证

Java垃圾回收机制(GC)详解

Java垃圾回收机制(GC)详解 简介: 垃圾回收GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变.垃圾收集的目的在于清除不再使用的对象.GC通过确定对象是否被活动对象引用来确定是否收集该对象.GC首先要判断该对象是否是时候可以收集.两种常用的方法是引用计数和对象引用遍历. 垃圾收集的算法分析: Java语言规范没有明确地说明JVM使用哪种垃圾