目录

List集合概述

一.List集合的特点

二.遍历方式

三.LinkedList实现堆栈容器

四.增长因子


List集合概述

  List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0)、且可重复的集合。

一.List集合的特点

 1.list集合容器具备增删改查
 2.有序
 3.元素可重复

package com.liao.tast;import java.util.ArrayList;
import java.util.List;/*** list集合的特点 * * 1.list集合容器具备增删改查* 2.有顺序* 3.元素可以重复* @author liao**/
public class Dome1 {public static void main(String[] args) {List list = new ArrayList();//增加list.add("a");list.add("b");list.add("c");System.out.println(list);//删除list.remove("b");System.out.println(list);//修改list.set(1, "v");//查看System.out.println(list);}}

二.遍历方式

1.forir 
2.foreach
3.迭代器 iteration

package com.liao.tast;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*** List的循环方式* 1.forir * 2.foreach* 3.迭代器 iteration* * * @author Administrator**/
public class Dome2 {public static void main(String[] args) {List list = new ArrayList();// 增加list.add("a");list.add("b");list.add("c");// forir遍历for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}// foreach遍历for (Object object : list) {System.out.println(object);}// 迭代器遍历Iterator it = list.iterator();while (it.hasNext()) {System.out.println(it.next());}}}

 三.LinkedList实现堆栈容器

package com.liao.tast;
/*** LinkedList实现堆栈容器* @author liao**/import java.util.LinkedList;public class Dome3 {public static void main(String[] args) {/*** LinkedList特点 * 链表方式* 查询修改速度慢  增加删除快* */LinkedList ll = new LinkedList();//增加ll.add("a");ll.add("b");ll.add("c");//实例化DuiZhanDuiZhan dz = new DuiZhan(ll);//弹栈System.out.println(dz.pop());System.out.println(dz.pop());System.out.println(dz.pop());}
}//创建一个类DuiZhanclass DuiZhan {private LinkedList ll;public DuiZhan(LinkedList ll) {super();this.ll = ll;}//压栈 弹栈public Object pop(){return ll.removeLast();}}

运行结果:

堆栈特点:先进后出,意思是先进去的数据会最后输出

四.增长因子

1.数组长度不可改变 但是集合长度可以扩容

优化前:数据到达长度上限就会一直增长扩容就会导致会影响性能

package com.liao.tast;
/*** list调优* ArrayList* @author Administrator* ArrayList扩容因子1.5   增长因子0.5*/import java.lang.reflect.Field;
import java.util.ArrayList;
//ArrayList特点:查询修改快 增加删除慢
public class Dome4 {
public static void main(String[] args) throws Exception, Exception  {//定义ArrayList数组//没有优化前ArrayList list = new ArrayList();for (int i = 0; i < 100; i++) {list.add(list);System.out.print(i+"\r");getCurrentArrayLength(list);}}
//获取当前数组的长度
private static void getCurrentArrayLength(ArrayList list) throws Exception, SecurityException {Field f = list.getClass().getDeclaredField("elementData");f.setAccessible(true); Object[] object = (Object[]) f.get(list);System.out.println("当前容器长度"+object.length);
}}

运行结果:


优化后:指定长度就可以优化

package com.liao.tast;
/*** list调优* ArrayList* @author Administrator* ArrayList扩容因子1.5   增长因子0.5*/import java.lang.reflect.Field;
import java.util.ArrayList;
//ArrayList特点:查询修改快 增加删除慢
public class Dome4 {
public static void main(String[] args) throws Exception, Exception  {//定义ArrayList数组//优化后ArrayList list = new ArrayList(50);//到50在进行扩容for (int i = 0; i < 100; i++) {list.add(list);System.out.print(i+"\r");getCurrentArrayLength(list);}}
//获取当前数组的长度
private static void getCurrentArrayLength(ArrayList list) throws Exception, SecurityException {Field f = list.getClass().getDeclaredField("elementData");f.setAccessible(true); Object[] object = (Object[]) f.get(list);System.out.println("当前容器长度"+object.length);
}}

运行结果:

结论:数组长度每次增加到最大值就会扩容

List集合详细介绍相关推荐

  1. 猿创征文|【JavaSE】Map集合详细介绍

    目录 Map集合 概述 结构继承图 继承图详细介绍 Map接口中常用方法 put方法 remove方法 get方法 containsKey方法 Map集合两种遍历方式[重点] 键找值方式 键值对方式 ...

  2. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    转载自  Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与 ...

  3. java输出set集合元素_java Set集合,HashSet类详细介绍

    下面要给大家介绍的就是java Set集合方面的内容,本文主要讲到了HashSet类的一些知识,主要包括了HashSet类的特点,HashSet 类的常用构造方法重载形式以及代码演示了创建两种不同形式 ...

  4. SQL Server 2005实现负载均衡的详细介绍

    SQL Server 2005实现负载均衡的详细介绍 SQL Server 2005仍然不直接地支持负载均衡--但是它为以前SQL Server版本中可用的所有负载均衡方法提供了令人激动的改善和支持. ...

  5. StringUtils常用方法+StringUtils详细介绍

    StringUtils用法+StringUtils详细介绍 博文来源:http://yijianfengvip.blog.163.com/blog/static/1752734322012122219 ...

  6. hibernate主键详细介绍

    hibernate主键详细介绍 /** * * @author liuguangyi * @content ejb3注解的API定义在javax.persistence.*包里面. * * 注释说明: ...

  7. 红黑树(一)之 原理和算法详细介绍---转帖

    目录 1 红黑树的介绍 2 红黑树的应用 3 红黑树的时间复杂度和相关证明 4 红黑树的基本操作(一) 左旋和右旋 5 红黑树的基本操作(二) 添加 6 红黑树的基本操作(三) 删除 作者:Sky W ...

  8. pythontuple数据类型_Python数据类型之元组的详细介绍

    本篇文章给大家带来的内容是关于Python数据类型之元组的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.元组的概念python中的元组是有序元素组成的集合,与列表的区别 ...

  9. SpringBoot 缓存之 @Cacheable 详细介绍

    一.简介 1.缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持.定义了 org.springframework.cache.Cache 和 org.springframework ...

最新文章

  1. Hibenate工具类(实现增/删/改/查)
  2. nyoj117求逆序数 并归排序法
  3. linux c ftp断点续传,求个支持断点续传的ftp脚本
  4. jQuery、jQury UI、jQuery Mobile----读书笔记
  5. shiro学习(3):用户权限
  6. abaqus生成adams柔性体_基于ADAMS 的大型反铲挖泥机加装破碎锤 结构动力学分析
  7. 安装docker desktop for windows启动时报错
  8. demo:flask进行模型部署 | ros接收点云流 | Web接收三路视频流及局部刷新——>显示效果展示
  9. html5,css3, bootstraps
  10. Hard To Get歌词分析
  11. java io学习 IO流的分类
  12. 计算机多媒体技术广泛应用于各个领域,新时期计算机多媒体技术的应用与发展趋势研究...
  13. 初级计算机硬件试题,初级计算机考试题库
  14. 如何用命令行和carbite c++生成sis文件
  15. 论文阅读:Generating Talking Face Landmarks from Speech
  16. 拿它们练Python爬虫,是在法律边缘试探吗?爬虫圈香饽饽之视频网站的评论区采集
  17. 2021年美容师(初级)报名考试及美容师(初级)模拟考试题
  18. 网络维护类岗位做什么?
  19. Linux Ethernet PHY 驱动
  20. Kotlin ?.let 、!! 、?:等运算符的使用

热门文章

  1. 智能语音电话机器人 快速拨打Restful接口
  2. Karhunen-Loeve Transform (KLT) 原理及PCA应用
  3. Laravel-API实践教程
  4. 一行代码实现 ofo app 首次注册时的步骤控件
  5. 目前常用的医疗心电图数据集
  6. Apollo-3.0本地编译
  7. Windows 终端 | Windows Terminal | 一款强大且高效的终端应用程序
  8. 计算机如何配置速度快,几种简单设置让电脑运行速度和网速变快!-怎么让电脑速度变快...
  9. 输出“回”型数字方阵
  10. 1.41亿部手机装有间谍软件! 360推国内首个CIQ查杀工具