前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java常用API(ArrayList类)

Java常用API(ArrayList类)

作者头像
一只胡说八道的猴子
发布2020-09-27 09:55:06
5440
发布2020-09-27 09:55:06
举报

Java常用API(ArrayList类)

我们为什么要使用ArrayList类?

为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所以Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据

什么是ArrayList?

所以从上面的介绍就可以看出所谓的ArrayList类就是一个长度可变的数组。

接下来我们来介绍ArrayList的使用:

第一步肯定是首先导包啦

java.util.ArrayList <E> :

注:

<E>:这里的E是范型的意思,意思是可以存储任意的引用数据类型,注意是引用数据类型,不是基本数据类型,那么有小伙伴就会问了,那么如果我就要存储基本数据类型呢?这里java给我们提供的包装类,(所谓包装类就是将基本数据类型包装为对象)后面我在写一篇文章展开详细的叙述

构造方法献上:

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

基本格式

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

jdk7之后右侧<>可以留空

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

下面来讲讲ArrayList的一些方法(在这里立个flag,等有时间了写几篇关于底层源码的文章)

public boolean add(E e) :将指定的元素添加到此集合的尾部。

public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。

public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。

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

下面我们来写一段代码将上面的方法来总结一下

1 这是存储对象的代码

代码语言:javascript
复制
public class Test {
    public static void main(String[] args) {
        ArrayList<Person> arrayList = new ArrayList<>();
        arrayList.add(new Person(18,"lisi"));
        arrayList.add(new Person(19,"zhangsan"));
        System.out.println(arrayList);
        //获取第一个位置的元素
        System.out.println(arrayList.get(0));
        //移除前的大小
        System.out.println("移除前的大小"+arrayList.size());
        //移除第一个位置的元素
        System.out.println(arrayList.remove(0));
        //移除后的大小
        System.out.println("移除前的大小"+arrayList.size());
    }
}
代码语言:javascript
复制
package cn.itcast;

public class Person {
    private int age;
    private  String name;

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public Person() {
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

注意: 要重写tostring ()方法不然打印出来的是地址值

结果

2这是存储基本数据类型的代码

代码语言:javascript
复制
package cn.itcast;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        arrayList.add(10);
        arrayList.add(20);
        System.out.println(arrayList);
    }
}

结果

有同学可能会问,你不是说包装成对象了吗,怎么又直接输出了,这里是因为java帮我们自动拆箱了,我后面再写一篇关于

包装类的文章详细展开叙述

3这里给大家再加点料

上面说到了ArrayList<E>是采用范型的,这就意味着可以加入不同的类型的引用数据类型放置在同一ArrayList<>中

下面举个例子

主函数

代码语言:javascript
复制
package cn.itcast;



import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<Object> arrayList = new ArrayList<>();
        arrayList.add(new Person(18,"lisi"));
        arrayList.add(new man(18,"wangwu",99));
        System.out.println(arrayList);
    }
}

Person类

代码语言:javascript
复制
package cn.itcast;

public class Person {
    private int age;
    private  String name;

    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public Person() {
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

main类

代码语言:javascript
复制
 1 package cn.itcast;
 2 
 3 public class man {
 4     private  int age;
 5     private  String name;
 6    private  int id;
 7 
 8     @Override
 9     public String toString() {
10         return "man{" +
11                 "age=" + age +
12                 ", name='" + name + '\'' +
13                 ", id=" + id +
14                 '}';
15     }
16 
17     public int getId() {
18         return id;
19     }
20 
21     public void setId(int id) {
22         this.id = id;
23     }
24 
25     public man(int age, String name, int id) {
26         this.age = age;
27         this.name = name;
28         this.id = id;
29     }
30 
31     public man(int age, String name) {
32         this.age = age;
33         this.name = name;
34     }
35 
36     public int getAge() {
37         return age;
38     }
39 
40     public void setAge(int age) {
41         this.age = age;
42     }
43 
44     public String getName() {
45         return name;
46     }
47 
48     public void setName(String name) {
49         this.name = name;
50     }
51 }

结果

以上就是一些基本的关于ArrayList的内容,如有不正确或则不完善的地方还请各位批评指教

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档