List集合

  • List接口是继承Collection接口,所以Collection集合中有的方法,List集合也会继承过来,可以直接使用。

  • All Superinterfaces: Collection, Iterable

  • All Implementing Classes: AbstractList, ArrayList, LinkedList, Stack, Vector

  • ArrayList继承AbstractList底层是数组,默认初始化容量是10,每次扩容以后是原容量得1.5倍

  • Vector底层也是数组,初始化容量也是10,但每次扩容是原容量得2倍。

  • 如何优化ArrayList和Vector,尽量减少数组拷贝,因为数组拷贝很消耗内存。推荐在创建集合得时候就指定集合得初始化容量。 List list= new ArrayList(50);

  • 代码

```
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; //ArrayList继承AbstractList底层是数组,默认初始化容量是10,每次扩容以后是原容量得1.5倍
//Vector底层也是数组,初始化容量也是10,但每次扩容是原容量得2倍。
//如何优化ArrayList和Vector,尽量减少数组拷贝,因为数组拷贝很消耗内存。推荐在创建集合得时候就指定集合得初始化容量。 List list= new ArrayList(50);
public class ListTest01 {
public static void main(String[] args) { // 创建一个list集合
List list= new ArrayList(); //多态 父类引用指向子类对象 //向list集合中添加元素 list.add(1);//自动装箱
list.add(100);
list.add("张三");
list.add("北京市通州区啦啦啦啦");
list.add(3.1415926); // int indexOf(Object o) 返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1
System.out.println(list.indexOf("张三")); // // set(int index, E element) 在索引为index位置的元素更改为element元素
list.set(2,"李四");
System.out.println(list.get(2)); //因为ArrayList集合底层是数组,所以可以利用下表来插入数据。在下标为1得位置上添加555
list.add(1,555); // 可以通过下标获取数据
Object obj=list.get(1);
System.out.println(obj); // 创建迭代器,遍历输出元素
Iterator iterator=list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("===============================================================================");
// List集合特有的遍历方式
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}

Day08_40_集合_List的更多相关文章

  1. 重新开始学习javase_集合_List

    一,List之ArrayList(转:http://blog.csdn.net/zheng0518/article/details/42198205) 1. ArrayList概述: ArrayLis ...

  2. Properties集合_list方法与store方法

    Properties集合和流对象结合的功能 list()方法: import java.util.Properties; public class PropertiesDemo { public st ...

  3. java_List集合及其实现类

    第一章:List集合_List接口介绍 1).特点       1).有序的: 2).可以存储重复元素: 3).可以通过索引访问: List<String> list = new Arra ...

  4. 自我理解foreach工作原理

        很多时候我们在使用for循环遍历一个数组的时候,我们都知道可以通过下标的索引找到当前数组中所对应的数据.这只对于简单的数组或集合,如果我们存储的数据不止只有数据项,还有一个标识项,就如同Has ...

  5. javase(8)_集合框架_List、Set、Map

    一.集合体系(不包括Queue体系) 二.ArrayList ArrayList的属性 private transient Object[] elementData; //存储元素 private i ...

  6. Dom4J解析xml文件动态转换为List<Bean>或者Map集合

    大家在解析大量相似xml文件的时候是否会遇到这样一个问题:冗余的代码去set定义的实体对象Bean的值,基本都是一样的操作   而且毫无任何代码价值可言所以在这写了一个简单的例子,类封装了几个方法你只 ...

  7. c#集合解析

    什么是集合(collection)? 提供了一种结构化组织任意对象的方式,从.NET 的角度看,所谓的集合可以定义为一种对象,这种对象实现一个或者多个System.Collections.IColle ...

  8. ASP.NET MVC 后台接收集合参数和 jquery ajax 传值

    MVC 接收参数数组(集合)   示例样本:   public class Person {      public string FirstName { get; set; }      publi ...

  9. ajax 提交数组 泛型集合

    ajax 提交数组 泛型集合 发表于2015/12/31 14:26:29  5117人阅读 分类: mvc asp.net webapi ORM 转载:http://blog.csdn.net/li ...

随机推荐

  1. 【SpringMVC】 4.3 拦截器

    SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记.源码以及个人的理解等,记录下来仅供学习 第4章 SpringMVC 核心技术 4.3 拦截器   ...

  2. vue:子组件通过调用父组件的方法的方式传参

    在本案例中,由于子组件通过调用父组件的方法的方式传参,从而实现修改父组件data中的对象,所以需要啊使用$forceUpdate()进行强制刷新 父组件: provide() { return { s ...

  3. TorchVision 预训练模型进行推断

    torchvision.models 里包含了许多模型,用于解决不同的视觉任务:图像分类.语义分割.物体检测.实例分割.人体关键点检测和视频分类. 本文将介绍 torchvision 中模型的入门使用 ...

  4. Linux内核的TCP协议栈和内核旁路的选择?

    [前言]最近在实习公司用到了solarflare的万兆网卡,用到了网卡的openonload技术还有TCPDirect模式代码的编写,其理论基础都是内核旁路.网上关于内核旁路技术的介绍基本就两篇,我结 ...

  5. 阿里巴巴Druid,轻松实现MySQL数据库连接加密!

    为什么要加密? 现在的开发习惯,无论是公司的项目还是个人的项目,都会选择将源码上传到 Git 服务器(GitHub.Gitee 或是自建服务器),但只要将源码提交到公网服务器就会存在源码泄漏的风险,而 ...

  6. 剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表

    剑指 Offer 50. 第一个只出现一次的字符 Offer_50 题目详情 方法一:使用无序哈希表 package com.walegarrett.offer; /** * @Author Wale ...

  7. PAT-1145(Hashing - Average Search Time)哈希表+二次探测解决冲突

    Hashing - Average Search Time PAT-1145 需要注意本题的table的容量设置 二次探测,只考虑正增量 这里计算平均查找长度的方法和书本中的不同 #include&l ...

  8. HDOJ-2222(AC自动机+求有多少个模板串出现在文本串中)

    Keywords Search HDOJ-2222 本文是AC自动机的模板题,主要是利用自动机求有多少个模板出现在文本串中 由于有多组输入,所以每组开始的时候需要正确的初始化,为了不出错 由于题目的要 ...

  9. 九. SpringCloud Stream消息驱动

    1. 消息驱动概述 1.1 是什么 在实际应用中有很多消息中间件,比如现在企业里常用的有ActiveMQ.RabbitMQ.RocketMQ.Kafka等,学习所有这些消息中间件无疑需要大量时间经历成 ...

  10. 关于 FreeBSD 老版本如何安装软件

    关于 FreeBSD 不被支持版本如何安装软件: ALLOW_UNSUPPORTED_SYSTEM=yes写到/etc/ make.conf ​​​​ 如果提示没有make.conf 请手动新建一个文 ...