ArrayList(只能存放对象的数组)理解和练习

        到目前为止,我们想存储对象数据,选择的容器,只有对象数组。而数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题, Java 提供了另一个容器 java . util . ArrayList 集合类,让我们可以更便捷的存储和操作对象数据。

什么是 ArrayList 类

java . util . ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动増长。

ArrayList 使用步骤查看类

        java . util . ArrayList < E >该类需要 import 导入包使后使用。
        < E >,表示一种指定的数据类型,叫做泛型。 E ,取自 Element (元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:
 ArrayList < String >,
 ArrayList < Student >

查看构造方法

        ● public ArayList ():构造一个内容为空的集合。

基本格式:

 ArrayList < String > list = new ArrayList < String >();

在 JDK 7后,右侧泛型的尖括号之内可以留空,但是>仍然要写。简化格式 :

 ArrayList < String > list = new ArrayList <>();

查看成员方法

        . public boolean add ( E e ):将指定的元素添加到此集合的尾部。
.参数 Ee ,在构造 ArrayList 对象时,< E >指定了什么数据类型,那么 add ( E e )方法中,只能添加什么数据类型的对象。 

        public boolean add ( E e ):将指定的元素添加到此集合的尾部。
        public E re П jove ( int index ):移除此集合中指定位置上的元素。返回被删除的元
素。
        public E get ( int index ):返回此集合中指定位置上的元素。返回获取的元素。

        public int size ():返回此集合中的元素数。遍历集合时,可以控制索引范围,防
止越界。

        ArrayList 对象不能存储基本类型只能存储引用类型的数据

        类似 cint >不能写,但是存储基本数据类型对应的包装类型是可以的。所以,想要存储基本类型数据,<中的数据类型,必须转换后才能编写,转换写法如下

基本类型基本类型包装类
 byteByte 
short Short
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写

创建对象:ArrayList<引用类型(类)> 变量名 = new ArrayList<可填引用类型可不填>();

添加:ArrayList对象名.add(需要添加的对象)

删除:ArrayList对象名.remove(下标)

获取值:ArrayList对象名.get(下标)

删除ArrayList数组:数组名.clear()

练习一:

package arraylist;

import java.util.ArrayList;

public class ArrayTest {
    public static void main(String[] args) {
        ArrayList<String> strings = new ArrayList<>();
        //ArrayList存放对象的数组,只能存放对象,不能存放变量
//      strings.add("abc");
        strings.add("bcd");
        strings.add("gvm");
        for (int i = 0; i < strings.size(); i++) {
            System.out.println(strings.get(i)+" ");
        }
        ArrayList<String> intArraylist = new ArrayList<>();
        intArraylist.add("A");
        intArraylist.add("B");
        intArraylist.add("A");
        intArraylist.add("B");
        intArraylist.add("C");
        //每一个字符串都是一个对象
        for (int i = 0; i < intArraylist.size(); i++) {
            //注意Arraylist 的长度获取使size()
            System.out.print(intArraylist.get(i)+" ");
        }
    }
}

练习二(ArrayList对象的创建,方法的调用):

package arraylist;
import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Student student1 = new Student("曹操",2055);
        //创建Student类的对象
        Student student2 = new Student("刘备",2045);
        Student student3 = new Student("孙权",2022);
        ArrayList<Student> threeKing = new ArrayList<>();
        //创建一个保存Student类型对象的ArrayList数组
        threeKing.add(student1);
        threeKing.add(student2);
        threeKing.add(student3);
        System.out.println("threeking的长度"+threeKing.size());
        for (int i = 0; i < threeKing.size(); i++) {
            System.out.println(threeKing.get(i).getName()+
                    ",年龄是"+threeKing.get(i).getAge());
        }
        threeKing.remove(0);
        System.out.println("--------------------------------");
        for (int i = 0; i < threeKing.size(); i++) {
            System.out.println(threeKing.get(i).getName()+
                    ",年龄是"+threeKing.get(i).getAge());
        }
        Student student4 = new Student("曹丕",2016);
        threeKing.add(student4);
        System.out.println("--------------------------------");
        for (int i = 0; i < threeKing.size(); i++) {
            System.out.println(threeKing.get(i).getName()+
                    ",年龄是"+threeKing.get(i).getAge());
            //显示数组里面对象的内容,调用对象里面的内容
        }
        threeKing.clear();
        //直接把ArrayList数组直接删除:里面的对象全部删除。
        System.out.println(threeKing.size());
    }
}

练习三:

        从键盘不断地输入数值,直到输入的是-1为止,并输出输入过的值

package arraylist;

import java.util.ArrayList;
import java.util.Scanner;

public class NumTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<Integer> num = new ArrayList<>();
        while(true){
            System.out.println("请输入一个值:");
            int key = input.nextInt();
            if(key == -1)
                break;
            num.add(key);
            //将kdy的值添加到ArrayList里面
        }
        for (int i = 0; i < num.size(); i++) {
            System.out.println(num.get(i)+"");
        }
        System.out.println();
        System.out.println(num.isEmpty());
        //判断num是否为空
    }
}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码定义一个ArrayList存放int类型的数组: ```java import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<int[]> arrayList = new ArrayList<>(); int[] arr1 = {1, 2, 3}; int[] arr2 = {4, 5, 6}; arrayList.add(arr1); arrayList.add(arr2); System.out.println(arrayList); } } ``` 在上面的代码中,我们首先导入 `java.util.ArrayList` 类。然后,我们创建了一个 ArrayList 对象并将其命名为 `arrayList`。接着,我们定义了两个 int 类型的数组 `arr1` 和 `arr2`,并将它们添加到 `arrayList` 中。最后,我们使用 `System.out.println()` 方法打印出 `arrayList` 的内容。 运行上述代码,输出结果如下: ``` [[I@1b6d3586, [I@4554617c] ``` 上面的输出结果看起来不太友好,因为它只是打印了数组的地址。如果您想要打印出数组的内容,可以使用 `Arrays.toString()` 方法,如下所示: ```java import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) { ArrayList<int[]> arrayList = new ArrayList<>(); int[] arr1 = {1, 2, 3}; int[] arr2 = {4, 5, 6}; arrayList.add(arr1); arrayList.add(arr2); System.out.println(Arrays.toString(arrayList.get(0))); System.out.println(Arrays.toString(arrayList.get(1))); } } ``` 在上面的代码中,我们使用 `Arrays.toString()` 方法打印出了 `arrayList` 中的两个 int 数组的内容。 运行上述代码,输出结果如下: ``` [1, 2, 3] [4, 5, 6] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值