zoukankan      html  css  js  c++  java
  • 集合框架之ArrayList -Java

    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);
    }
    
  • 相关阅读:
    【转】Cocos2d
    unity3d中控制物体移动方法有那些及区别
    Memcached存Session数据、访问安全性、使用场景总结
    [转载]大家都很忙的,请学会帮对方节省时间
    [转载]大家都很忙的,请学会帮对方节省时间
    陆琪:为什么说爱情中“莫欺少年穷”?《秒懂男人》书摘
    SQL Server2012完全备份、差异备份、事务日志备份和还原操作
    SQL Server2012完全备份、差异备份、事务日志备份和还原操作
    SQLSERVER 完整还原 一直显示正在还原解决方法
    SQLSERVER 完整还原 一直显示正在还原解决方法
  • 原文地址:https://www.cnblogs.com/zx224569/p/12968704.html
Copyright © 2011-2022 走看看