• ArrayList类


    一.数组存储对象

    package com.gatsby.study;
    
    /*
    题目:
    定义一个数组,用来存储3个Person对象。
    数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。
     */
    
    public class Demo01Array {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Person[] array = new Person[3];
    		Person one = new Person("gatsby", 24);
    		Person two = new Person("crush", 23);
    
    		System.out.println(one);// com.gatsby.study.Person@6108b2d7
    
    		// 将one当中的地址值赋值到数组的0号元素位置
    		array[0] = one;
    		array[1] = two;
    
    		System.out.println(array[0]); // 地址值
    		System.out.println(array[1]); // 地址值
    
    		System.out.println(array[1].getName());
    
    	}
    
    }
    

    二.什么是ArrayList类?
    ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
    ArrayList 继承了AbstractList ,并实现了 List 接口。
    三.ArrayList 使用
    import java.util.ArrayList; // 引入 ArrayList 类
    ArrayList<E> objectName =new ArrayList<>();  // 初始化
    E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
    objectName: 对象名。

    package com.gatsby.study;
    
    import java.util.ArrayList;
    
    public class Demo02ArrayList {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		ArrayList<String> list = new ArrayList<>();
    		System.out.println(list); // []
    
    		list.add("gatsby");
    		System.out.println(list);
    
    		list.add("crush");
    		System.out.println(list);
    
    //      list.add(100); // 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行
    	}
    
    }
    

    四.ArrayList 增、删

    package com.gatsby.study;
    
    import java.util.ArrayList;
    
    /*
    ArrayList当中的常用方法有:
    
    1.public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
    备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
    但是对于其他集合(今后学习)来说,add添加动作不一定成功。
    
    2.public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
    
    3.public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
    
    4.public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。
     */
    
    public class Demo03ArrayListMethod {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		ArrayList<String> list = new ArrayList<>();
    		System.out.println(list); // []
    
    		boolean success = list.add("Age");
    		System.out.println(list);
    		System.out.println("添加动作是否成功->	" + success);// true
    
    		list.add("gatsby");
    		list.add("crsuh");
    		list.add("TravelingLight");
    		list.add("EdSheeran");
    
    		System.out.println(list);// [Age, gatsby, crsuh, TravelingLight, EdSheeran]
    
    		// 从集合中获取元素:get。索引值从0开始
    		String name = list.get(2);
    		System.out.println("第二号索引位置->" + name);
    
    		// 从集合中删除元素:remove。索引值从0开始。
    		String whoRemoved = list.remove(3);
    		System.out.println("被删除的人是:" + whoRemoved); // TravelingLight
    		System.out.println(list); // [Age, gatsby, crsuh, EdSheeran]
    
    		// 获取集合的长度尺寸,也就是其中元素的个数
    		int size = list.size();
    		System.out.println("集合的长度是:" + size);
    
    	}
    
    }
    

      五,ArrayList 查,遍历

    package com.gatsby.study;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Demo04ArrayListEach {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		ArrayList<String> arrayList = new ArrayList<>();
    		arrayList.add("Avicii");
    		arrayList.add("Crsuh");
    		arrayList.add("EdSheeran");
    		arrayList.add("Gatsby");
    
    		// 1.使用迭代器 遍历 每个集合对象都有自己的迭代器
    		Iterator<String> it = arrayList.iterator();
    		// 泛型指的是 迭代出 元素的数据类型
    		while (it.hasNext()) {
    			String string = it.next();//获取迭代出的元素
    			System.out.println("arrayList中的元素->" + string);
    		}
    
    		// 2. 根据索引位置,遍历集合    效率最高
    		for (int i = 0; i < arrayList.size(); i++) {
    			System.out.println(arrayList.get(i));
    		}
    
    		// 3. for-each
    		for (String string : arrayList) {
    			System.out.println(string);
    		}
    
    	}
    
    }
    

    tips:: Iterator 在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

    tips:    新for循环必须有被遍历的目标。目标只能是Collection或者是数组。新式for仅仅作为遍历操作出现。

    六. 存储基本数据类型
    ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对应的
    包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写

    import java.util.ArrayList;
    
    /*
    如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
    
    基本类型    包装类(引用类型,包装类都位于java.lang包下)
    byte        Byte
    short       Short
    int         Integer     【特殊】
    long        Long
    float       Float
    double      Double
    char        Character   【特殊】
    boolean     Boolean
    
    从JDK 1.5+开始,支持自动装箱、自动拆箱。
    
    自动装箱:基本类型 --> 包装类型
    自动拆箱:包装类型 --> 基本类型
     */
    public class Demo05ArrayListBasic {
    
        public static void main(String[] args) {
            ArrayList<String> listA = new ArrayList<>();
            // 错误写法!泛型只能是引用类型,不能是基本类型
    //        ArrayList<int> listB = new ArrayList<>();
    
            ArrayList<Integer> listC = new ArrayList<>();
            listC.add(100);
            listC.add(200);
            System.out.println(listC); // [100, 200]
    
            int num = listC.get(1);
            System.out.println("第1号元素是:" + num);
        }
    
    }
    

      

     

  • 相关阅读:
    十大经典排序算法最强总结(含JAVA代码实现)
    Java相关官方链接
    强网杯2020(Funhash)
    强网杯2020(主动)
    强网杯2020(upload)
    (内存取证)46届世界技能大赛湖北省选拔赛
    (流量分析)46届世界技能大赛湖北省选拔赛
    CISCO ASA远程任意文件读取
    OOALV 分割屏幕
    Process Doppelg&#228;nging
  • 原文地址:https://www.cnblogs.com/crushgirl/p/13528289.html
Copyright © 2020-2023  润新知