ArrayList

1.与数组的区别

如果要存放多个对象,可以使用数组,但是数组会有长度的限制,会出现不够用或者是浪费的情况。

为了解决数组的局限性引入了容器的概念,最常用的容器就是ArrayList

容器的容量会随着对象的增加,自动增长,不用担心超限的情况发生。

2.定义与常用方法(SchoolWork默认为一个类)(java.util.ArrayList)

<1>定义

ArrayList allWork = new ArrayList();  //定义格式

<2>add增加

allWork.add(new SchoolWork("math"));  //直接add对象,把对象加在最后面
allWork.add(1, "math"); //在指定位置增加对象

<3>contains判断是否存在

System.out.println(allWork.contains("math"));  //判断是否存在math,存在输出true,反之false

<4>get获取指定位置的对象

System.out.println(allWork.get(1));  //超限则会报错

<5>indexOf获取对象所处的位置

System.out.println(allWork.indexOf("math"));  //输出math的位置下标

<6>remove删除对象

allWork.remove(1);  //删除下标1的对象
allWork.remove("math"); //直接指定删除对象删除

<7>set替换

allWork.set(1, "english");  //把下标1的元素替换为english

<8>size获取大小

System.out.println(allWork.size());  //输出大小

<9>toArray转换为数组

SchoolWork arr[] = (school[])allWork.toArray(new SchoolWork[]{});

<10>addAll把另一个容器所有对象都加进来

//假设有allWork和threeWork两个容器,并且threeWork中已有对象
allWork.addAll(threeWork); //将threeWork中的对象都添加到allWork中

<11>clear清空容器

allWork.clear();

3.List接口

ArrayList实现了List接口,通常会把引用声明为List接口类型(导入java.util.List)

List allWork = new ArrayList();

4.泛型Generic

不指定泛型的容器可以存放任何类型的元素

指定了泛型的容器只能存放指定类型的元素及其子类

List<SchoolWork> allWork = new ArrayList<SchoolWork>();  //为了不出现编译警告,前后都使用泛型
List<SchoolWork> allWork = new ArrayList<>(); //jdk7提供了简单的缩写

5.遍历ArrayList

<1>for循环遍历

for (int i = 0; i < allWork.size(); i++) {
SchoolWork h = allWork.get(i);
System.out.println(h);
}

<2>迭代器遍历(java.util.Iterator)

Iterator<SchoolWork> it= allWork.iterator();
//从最开始的位置判断"下一个"位置是否有数据
//如果有就通过next取出来,并且把指针向下移动
//直到"下一个"位置没有数据
while(it.hasNext()){
SchoolWork h = it.next();
System.out.println(h);
}
//迭代器的for写法
System.out.println("--------使用for的iterator-------");
for (Iterator<SchoolWork> iterator = allWork.iterator(); iterator.hasNext();) {
SchoolWork work = (SchoolWork) iterator.next();
System.out.println(work);
}

<3>增强型for循环

很多程序员的首选,但存在不足之处:

无法用来进行ArrayList的初始化

无法得知当前是第几个元素了,当需要只打印单数元素的时候就做不到了

for (SchoolWork h : allWork) {
System.out.println(h);
}

集合框架之ArrayList -Java的更多相关文章

  1. Java集合框架之ArrayList浅析

    Java集合框架之ArrayList浅析 一.ArrayList综述: 位于java.util包下的ArrayList是java集合框架的重要成员,它就是传说中的动态数组,用MSDN中的说法,就是Ar ...

  2. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  3. 集合框架(JCF/Java Collection Framework)

    集合的特点:1.数据的类型可以不同2.集合长度可变3.空间不固定集合也是对象,用于检索,存储以及传输对象集合框架的组成Collection接口和Map接口 Collection是Set接口和List接 ...

  4. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版

    原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...

  5. 集合框架基础知识-----java基础知识

    Java集合框架 :接口:Collection.List .Set. Map:实现类:ArrayList.LinkedList.Vector.HashSet.TreeSet.HashMap.HashT ...

  6. Java入门系列(七)Java 集合框架(JCF, Java Collections Framework)

    Java 集合概述 List.Set.Map可以看做集合的三大类 java集合就像一个容器,可以将多个对象的引用丢进该容器中. Collection和Map是java集合的根接口. List List ...

  7. Java集合框架介绍。Java Collection Frameworks = JCF

    Java集合框架 = Java Collection Frameworks  = JCF . 为了方便理解,我画了一张思维脑图.

  8. java集合框架05——ArrayList和LinkedList的区别

    前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...

  9. java基础之集合框架--使用ArrayList类动态 存储数据

    一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...

随机推荐

  1. Mysql 字符串拆分 OR 一行转多行

    Mysql 字符串拆分 OR 一行转多行 需要了解的的几个mysql 函数: A.substring_index():字符串截取 substring_index(str,delim,count)   ...

  2. 数学--数论--HDU 12151七夕节 Plus (因子和线性筛)

    Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" ...

  3. CodeForces - 224C. Bracket Sequence (栈模拟)简单做法

    A bracket sequence is a string, containing only characters "(", ")", "[&quo ...

  4. python(写入 excel 操作 xlwt 模块)

    一.安装 xlwt 模块 pip install xlwt 二.excel 写入操作 这种方式只能新增或者覆盖文件写入 import xlwt # 创建一个workbook 设置编码 workbook ...

  5. Python安装第三方模块出错 No module named setuptools

    在安装 zabbix-alerta 第三方模块时候报错 python setup.py install 此时需要安装 setuptools 模块, 这里用自动化脚本安装 wget https://bo ...

  6. docker学习笔记一篇就通系列(持续更新)

    docker三要素 仓库 镜像 容器 仓库 仓库用来存放docker的镜像,类似于github存放代码医养 镜像 镜像是一个模板,封装了应用程序和配置依赖的可交付的运行环境,这个打包好的运行环境就是镜 ...

  7. EOS基础全家桶(十)交易Action操作

    简介 区块链上的所有操作都是通过交易(Transaction)上链的,无论你是转账交易还是发起的智能合约的调用,而EOS和传统区块链不同的是EOS在一个交易里可以发起多个行为(Action),这使得E ...

  8. HDU1214圆桌会议

    一个环,从1编号到n. 每次可以交换相邻的两个人, 问最少交换几次,使得每个数字的左右数字交换. 转载自:https://blog.csdn.net/yin_zongming/article/deta ...

  9. Linux系统上LNMP服务器的搭建

    一.确保登录用户权限为root 如果没有root权限: su  root 切换到root用户,但不切换环境变量: 或者 su - root 完整地切换到root用户环境. 二.开始下载并安装LNMP( ...

  10. Java的Object.wait(long)在等待时间过去后会继续往后执行吗

    Java的Object.wait(long)在等待时间过去后会继续往后执行吗 Object.wait(long)方法相比于wait,多了个等待时长,那么当等待时长过去后,线程会继续往下执行吗? 单个线 ...