广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java ArrayList中存放引用数据类型的方式
  • 115
分享到

Java ArrayList中存放引用数据类型的方式

2024-04-02 19:04:59 115人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录ArrayList中存放引用数据类型看下面一个例子Java 引用数据类型 ArrayList集合引用数据类型(类)ArrayList 集合ArrayList中存放引用数据类型 A

ArrayList中存放引用数据类型

ArrayList中存放引用类型时,存放的是一个引用,因此在放入ArrayList之后再进行改动会影响到ArrayList中的值

看下面一个例子


import java.util.ArrayList;
public class Student implements Cloneable{
    private int age;
    private String name;
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<Student>();
        Student st = new Student();
        st.age = 10;
        st.name = "marco";
        students.add(st);
        st.age = 20;    //修改age值
        System.out.println(students.get(0).age);    //输出为20
    }
}

同样,如果ArrayList中存放的也是ArrayList类型,如ArrayList<ArrayList<Integer>>,对里面ArrayList的修改同样会影响到外层的ArrayList,如果想不受到影响可以在放入ArrayList时进行clone操作,对于ArrayList来说可以使用new ArrayList<ArrayList<Integer>>(list)来进行复制。

Java 引用数据类型 ArrayList集合

引用数据类型(类)

分类

提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类、Random类。

我们可以把类的类型为两种:

  • 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。
  • 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。

类的定义和使用

java代码映射成现实事物的过程就是定义类的过程。

我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。

目前,我们只关注类中的属性,类中的方法在面向对象部分再进行学习

类的定义格式


创建java文件,与类名相同
public class 类名{
    数据类型  属性名称1;
    数据类型  属性名称2;
    …
}

例如:


public class Phone {
    
    String brand;// 品牌型号
    String color;// 颜色
    double size; // 尺寸大小
}

类的使用方式

有如下步骤

  • 导包:我们将所有的类放到同一个文件夹下,可以避免导包。
  • 创建对象:数据类型 变量名 = new 数据类型();
  • 调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
  • 访问属性:变量名.属性(这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)

当有了Phone数据类型的变量后,我们就可以使用Phone类中的属性了。对属性的访问我们来演示一下,如下所示:


public class Test {
    public static void main(String[] args) {
        //定义了一个Phone类型的变量p
        Phone p = new Phone();
        
        //访问p中的brand品牌属性
     p.brand = "苹果6s";
    //访问p中的color颜色属性
        p.color = "白色";
       //访问p中的size尺寸大小属性
        p.size = 5.5;
        System.out.println("手机品牌为" + p.brand);
        System.out.println("手机颜色为" + p.color);
        System.out.println("手机尺寸大小为" + p.size);
    }
}

自定义类的内存图演示:

上述代码中,通过类Phone创建出来的变量p,它相当于我们生活中的盒子,里面包含了它能够使用的属性。

通过 p.属性名 就可以对属性进行操作

与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。

ArrayList 集合

ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

创建

导包:import java.util.ArrayList;

创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:

ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();

l 集合中存储的元素,只能为<>括号中指定的数据类型元素;

l “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;

下面给出8种基本数据类型所对应的引用数据类型表示形式:

基本数据类型

对应的引用数据类型表示形式

byte

Byte

short

Short

Int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

下面是一些创建arraylist的实例:


存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>(); 
存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();

方法

返回值类型 方法和描述
boolean add(E e)
将指定的元素添加到集合中
void add(int index, E element)
在列表中指定的位置上插入指定的元素。
boolean addAll(Collection<? extends E> c)
追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回。
boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到该列表中,从指定位置开始。
void clear()
从这个集合中移除所有的元素。
Object clone()
返回该 ArrayList实例浅拷贝。
boolean contains(Object o)
返回 true如果这个列表包含指定元素。
void ensureCapacity(int minCapacity)
增加集合的容量,虽说arraylist本省就是可变的,但当你可以预先确定一定容量时,可以增加效率
E get(int index)
返回此列表中指定元素的位置
int indexOf(Object o)
返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。
boolean isEmpty()
返回 true如果此列表不包含元素。
Iterator<E> iterator()
在这个列表中的元素上返回一个正确的顺序。
int lastIndexOf(Object o)
返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。
ListIterator<E> listIterator()
返回列表元素的列表迭代器(在适当的顺序)。
ListIterator<E> listIterator(int index)
在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始。
E remove(int index)
移除此列表中指定位置的元素。
boolean remove(Object o)
从该列表中移除指定元素的第一个发生,如果它是存在的。
boolean removeAll(Collection<?> c)
从这个列表中移除包含在指定集合中的所有元素。
boolean removeIf(Predicate<? super E> filter)
删除满足给定谓词的这个集合的所有元素。
protected void removeRange(int fromIndex, int toIndex)
从列表中删除所有的元素的索引 fromIndex之间,包容性,和 toIndex,独家。
void replaceAll(UnaryOperator<E> operator)
用将运算符应用到该元素的结果替换此列表中的每个元素。
boolean retainAll(Collection<?> c)
仅保留包含在指定集合中的列表中的元素。
E set(int index, E element)
用指定元素替换此列表中指定位置的元素。
int size()
返回此列表中元素的数目。
void sort(Comparator<? super E> c)
分类列表使用提供的 Comparator比较元素。
Spliterator<E> spliterator()
创建一个后期绑定和快速失败 Spliterator超过此列表中的元素。
List<E> subList(int fromIndex, int toIndex)
返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
Object[] toArray()
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
<T> T[] toArray(T[] a)
返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一到最后一个元素);返回数组的运行时类型是指定的数组的运行时类型。
void trimToSize()
装饰这 ArrayList实例是列表的当前容量。

下面是一些实例:


import java.util.ArrayList;
public class ArrayListDemo01 {
    public static void main(String[] args) {
        // 创建ArrayList集合
        ArrayList<String> list = new ArrayList<String>();
        // 向集合中添加元素
        list.add("stu1");
        list.add("stu2");
        list.add("stu3");
        list.add("stu4");
        // 获取集合中元素的个数
        System.out.println("集合的长度:" + list.size());
        // 取出并打印指定位置的元素
        System.out.println("第1个元素是:" + list.get(0));
        System.out.println("第2个元素是:" + list.get(1));
        System.out.println("第3个元素是:" + list.get(2));
        System.out.println("第4个元素是:" + list.get(3));
    }
}

注意:ArrayList集合相当于是一个长度可变的数组,所以访问集合中的元素也是采用索引方式访问,第一个元素存储在索引0的位置,第二个元素存储在索引1的位置,依次类推

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java ArrayList中存放引用数据类型的方式

本文链接: https://www.lsjlt.com/news/155569.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java ArrayList中存放引用数据类型的方式
    目录ArrayList中存放引用数据类型看下面一个例子Java 引用数据类型 ArrayList集合引用数据类型(类)ArrayList 集合ArrayList中存放引用数据类型 A...
    99+
    2022-11-12
  • Java动态数组Arraylist存放自定义数据类型方式
    目录Java动态数组Arraylist存放自定义数据类型自定义一个动态数组ArrayList,加深对动态数组的理解Java动态数组Arraylist存放自定义数据类型 class...
    99+
    2022-11-12
  • java创建存放不同类型数据的数组
    java创建存放不同类型数据的数组java中,将不同类型的数据放到一个数组中,可以采用Object来实现。例子:public class Main { public static void main(String []args) {...
    99+
    2020-12-31
    java入门 java object 数组
  • java中有什么引用数据类型
    本篇内容介绍了“java中有什么引用数据类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java中引用数据类型有哪些Java中有俩种数据类...
    99+
    2023-06-25
  • 如何在Java中引用数据类型
    如何在Java中引用数据类型?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java中的引用数据类型:Java作为面向对象的语言,Java中所有用class,interfac...
    99+
    2023-05-31
    数据类型 ava java
  • 关于java中基本数据类型与引用数据类型的介绍
    一、基本数据类型byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0int:整型,用于存储整...
    99+
    2015-04-05
    java入门 java 基本数据类型 引用数据类型
  • java long 类型数据的赋值方式
    目录java long类型数据的赋值问题解决把null赋值给long产生的奇怪问题问题产生的原因java long类型数据的赋值 问题 当程序出现较大的数值的时候(超过int类型:-...
    99+
    2022-11-13
  • Java中数据类型索引的作用是什么?
    在Java中,数据类型是非常重要的一个概念,它们定义了变量可以存储的数据类型。Java中的数据类型包括基本数据类型和引用数据类型。在Java中,为了方便程序员使用和管理数据类型,引入了数据类型索引的概念。本文将介绍Java中数据类型索引的...
    99+
    2023-08-25
    数据类型 索引 spring
  • 聊聊java中引用数据类型有哪些
    目录java中引用数据类型有哪些下面说说java中引用数据类型:一、类Class引用二、接口interface引用三、数组引用数组的定义数组的初始化初始化数组的两种方式:为什么Jav...
    99+
    2022-11-12
  • java 引用类型的数据传递的是内存地址实例
    目录java 引用类型的数据传递的是内存地址看下面的代码和截图list集合存引用数据类型时的问题集合list的存储元素java 引用类型的数据传递的是内存地址 java中引用类型的数...
    99+
    2022-11-12
  • Java中的索引数据类型如何支持响应式编程?
    在编程中,我们常常需要对一些数据进行索引操作,以便于快速查找和获取数据。在Java中,我们可以使用索引数据类型来实现这个功能。而响应式编程则是一种编程模型,通过对数据流进行观察和响应,可以有效地处理异步事件和数据流。本文将介绍Java中的...
    99+
    2023-09-09
    响应 索引 数据类型
  • 响应式编程如何改变Java中的索引数据类型?
    响应式编程是一种编程范式,它可以帮助我们更加优雅地处理异步事件流。在Java中,响应式编程已经成为了一种趋势,并且在Java 9中也加入了响应式流API。但是,响应式编程在处理索引数据类型方面,需要我们有一些新的思考方式。 Java中的索引...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中响应式编程如何影响索引数据类型?
    Java作为一门强大的编程语言,一直在不断的发展和创新,其中响应式编程是一种非常流行的编程范式。随着响应式编程的不断发展,它对Java中的索引数据类型也产生了一些影响。本文将详细介绍Java中响应式编程如何影响索引数据类型,并通过演示代码...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中的响应式编程如何利用索引数据类型的优势?
    响应式编程是一种编程范式,它将编程的重点放在数据流上,而不是在控制流上。在Java中,响应式编程可以通过使用RxJava库来实现。RxJava库是一个用于异步、基于事件的编程的Java库,它允许我们以响应式的方式处理数据流。 在RxJav...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中的响应式编程如何优化索引数据类型的使用?
    响应式编程是一种编写代码的方式,它强调代码的响应性和可组合性。在Java中,响应式编程使用RxJava库来实现。RxJava是一个基于观察者模式的异步事件处理库,它允许我们以响应式编程的方式处理异步事件。 在Java中,我们通常使用数组或...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中字符串转int数据类型的三种方式
    目录字符串转int数据类型的三种方式方法一: Integer.valueOf( ) 方法二: Integer.parseInt(),它将返回一个基本数据类型 in...
    99+
    2023-03-01
    字符串转int数据类型 字符串转int 字符串转int方法
  • java long类型数据的赋值方式是什么
    今天小编给大家分享一下java long类型数据的赋值方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。ja...
    99+
    2023-07-02
  • Java中的索引数据类型如何应用于响应式编程的实践中?
    随着互联网的快速发展,人们对数据的处理需求越来越高。在Java编程中,索引数据类型是非常重要的一种数据类型,它能够帮助我们更加高效地处理数据。同时,响应式编程也是近年来比较流行的一种编程模式,它可以在数据变化时自动更新UI,提高程序的响应...
    99+
    2023-09-09
    响应 索引 数据类型
  • Spring开发中如何使用Java数据类型索引?
    Spring是一个非常流行的Java开发框架,它提供了丰富的API和工具,以帮助开发人员更快速、更高效地开发Web应用程序。在Spring开发中,使用Java数据类型索引是一项非常重要的技能。本文将介绍如何在Spring开发中使用Java数...
    99+
    2023-08-25
    数据类型 索引 spring
  • Java中的数据类型存储:Git有什么作用?
    在Java编程中,数据类型存储是非常重要的一部分。Java中的数据类型包括原始数据类型和引用数据类型,它们各自具有不同的特性和用途。而Git则是一个非常强大的版本控制工具,它可以帮助我们更好地管理代码和项目。本文将介绍Java中的数据类型...
    99+
    2023-09-18
    git 数据类型 存储
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作