Java ArrayList类

Posted blog-s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java ArrayList类相关的知识,希望对你有一定的参考价值。

ArrayList<E>

  • 数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
  • 对于ArrayList来说,有一个<E>代表泛型。
  • 泛型,也就是装在集合当中的所有元素,全都是统一的什么类型。
  • 注意事项:泛型只能是引用类型,不能是基本类型。
  • 注意事项:对于ArrayList集合来说,直接打印得到的不是地址值,而是内容,如果内容是空,得到的是空的中括号, [ ]。
  • 示例
import java.util.ArrayList;
public class DemoArrayList 
    public static void main(String[] args) 
        //创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
        //备注:从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);  //  []
        //向集合当中添加一些数据,需要用到add方法
        list.add("迪丽热巴");
        System.out.println(list);  //  [迪丽热巴];
        list.add("古力娜扎");
        list.add("赵丽颖");
        System.out.println(list);  //  [迪丽热巴, 古力娜扎, 赵丽颖]
    

ArrayList当中常用的方法

  • public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致,返回值代表添加是否成功。
    备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用不可用,但是对于其他集合来说,add添加动作不一定成功。

  • public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
  • public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除的元素。
  • public int size():获取集合的尺寸长度,返回值是集和当中包含元素的个数。
  • 示例

import java.util.ArrayList;
public class DemoArrayListMethod 
    public static void main(String[] args) 
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

        // 向集合当中添加元素:add
       boolean success =  list.add("迪丽热巴");
        System.out.println(list); // 迪丽热巴
        System.out.println("添加动作是否成功:" + success); // true

        list.add("李小璐");
        list.add("赵又廷");
        list.add("贾乃亮");
        System.out.println(list); //[迪丽热巴, 李小璐, 赵又廷, 贾乃亮]

        //从集合当中获取元素:get,索引从0开始
        String name = list.get(1);
        System.out.println("第一号索引位置:" + name);

        //从集合当中删除元素:remove,索引从0开始
        String whoRemoved = list.remove(1);
        System.out.println("被删除的人是:" + whoRemoved); // 李小璐
        System.out.println(list);

        //获取集合的长度尺寸,也就是其中元素的个数
        System.out.println("集合的长度是:" + list.size());

    
  
  • 遍历集合
import java.util.ArrayList;
public class DemoArraylistEach 
    public static void main(String[] args) 
        ArrayList<String> list = new ArrayList<>();
        list.add("迪丽热巴");
        list.add("古力娜扎");
        list.add("马尔扎布");

        // 遍历集合
        for (int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i));
        
    

ArrayList存储基本数据类型

  • 如果希望向集合ArrayList中存储基本数据类型,必须使用基本类型对应的“包装类”。
  • ArrayList中不能存储基本数据类型,集合中实际上存储的是地址值
  • 备注:从JDK 1.5+ 开始,支持自动装箱,自动拆箱。
    自动装箱:基本类型 --> 包装类型
    自动拆箱:包装类型 --> 基本类型
基本数据类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer 【特殊】
long Long
float Float
double Double
char Character 【特殊】
boolean Boolean
  • 包装类使用示例
import java.util.ArrayList;
public class DemoArrayLlistBasic 
    public static void main(String[] args) 
        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); // 200
    

题目一

import java.util.ArrayList;
import java.util.Random;
/*
题目:
产生6个1~33的随机数,添加到集合当中,并遍历集合
 */
public class DemoArrayListRandom 
    public static void main(String[] args) 
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) 
            int num = r.nextInt(33) + 1;
            list.add(num);
        
        for (int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i));
        
    

题目二

/*
在ArrayList中存储自定义的对象
 */
import java.util.ArrayList;
public class DemoArrayListStudent 
    public static void main(String[] args) 
        ArrayList<Student> list = new ArrayList<>();

        Student one = new Student("洪七公", 20);
        Student two = new Student("欧阳锋", 21);
        Student three = new Student("黄药师", 22);
        Student four = new Student("段智兴", 23);

        list.add(one);
        list.add(two);
        list.add(three);
        list.add(four);

        // 遍历集合
        for (int i = 0; i < list.size(); i++) 
            Student stu = list.get(i);
            System.out.println("姓名:" + stu.getName() + ",年龄:" + stu.getAge());

        
    

题目三

/*
按指定格式遍历集合字符串
 */
import java.util.ArrayList;
public class DemoArrayListPrint 
    public static void main(String[] args) 
        ArrayList<String> list = new ArrayList<>();

        list.add("张三丰");
        list.add("张无忌");
        list.add("张翠山");
        list.add("宋远桥");

        System.out.println(list); // [张三丰, 张无忌, 张翠山, 宋远桥]
        printArrayList(list);   // 张三丰@张无忌@张翠山@宋远桥
    
// 打印指定格式的集合,集合可以当作方法的参数
    public static void printArrayList(ArrayList<String> list)
        System.out.print("");
        for (int i = 0; i < list.size(); i++) 
            String name = list.get(i);
            if (list.size() -1 == i)
                System.out.println(name + "");
            else
                System.out.print(name + "@");
            
        
    

题目四

import java.util.ArrayList;
import java.util.Random;
/*
题目:
创建一个装20个随机数的大集合,将其中的偶数保存在小集合中。
要求自定义方法实现筛选
 */
public class DemoArrayListReturn 
    public static void main(String[] args) 
        ArrayList<Integer> bigList = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 20; i++) 
            int num = r.nextInt(100) + 1;
            bigList.add(num);
        

        ArrayList<Integer> smallList = getSmallList(bigList);
        System.out.println("偶数共" + smallList.size() + "个");
        for (int i = 0; i < smallList.size(); i++) 
            System.out.println(smallList.get(i));
        
    
    // 自定义方法,参数是大集合,返回值是满足条件的小集合
    public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList)
        ArrayList<Integer> smallList = new ArrayList<>();

        for (int i = 0; i < bigList.size(); i++) 
            int num = bigList.get(i);
            if (num % 2 == 0) 
               smallList.add(num);
            
        
        return smallList;
    

以上是关于Java ArrayList类的主要内容,如果未能解决你的问题,请参考以下文章

Java 之 ArrayList 类

Java之ArrayList类(集合)

Java 集合类学习之ArrayList

Java集合类之ArrayList

如何将 ArrayList 从 Java 类传递给 jsp

java集合框架--ArrayList类Vector和LinkedList类