Java动态数组Arraylist存放自定义数据类型方式
作者:「已注销」 发布时间:2023-07-25 10:41:30
标签:Java,动态数组,Arraylist,数据类型
Java动态数组Arraylist存放自定义数据类型
class Point
{
int x;
int y;
public Point(int x,int y)
{
this.x=x;
this.y=y;
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Point> myPoint=new ArrayList<Point>();
Point temp=new Point(5,10);
myPoint.add(temp);
**Point p = (Point)myPoint.get(0);**
System.out.println("x的值为:"+p.x);
System.out.println("y的值为:"+p.y);
}
}
ArrayList可以存放任何对象的引用;其是有序的可重复的;取出时是Object对象,需要强制转化
自定义一个动态数组ArrayList,加深对动态数组的理解
动态数组主要用来保存多个相同类型的数据
主要做添加
添加:首先判断定义的数组长度是否小于等于原有空间,当满足这个条件时,就创建一个新的长度变量newlength等于它原有的长度加上原有的长度右移一位(位移比除法的运算速度快)。定义一个新数组newinformation存放数据,用System.arraycopy进行拷贝,将原有数组数据拷贝到新数组。
代码如下:
测试结果:
获取get():直接判断下标是否超过数组长度,如果超过就抛出下标越界异常。然后直接根据下标返回该数组对应的值。
代码如下:
测试结果:
改set():首先依旧判断下标是否越界,直接根据下标给对应数组data[index]把t的值赋给它.
代码如下:
测试结果如下:
删除remove():首先还是判断下标是否越界,定义一个T类型的r把要删除的对应下标数组的值赋值给它。然后判断下标加1是否等于原有空间大小,在不等于的情况下,把它要删除下标的后一个值传给要删除下标的值,以此类推。把数据最后一位的值定义为空null.最后返回删除的值。
代码如下:
测试结果如下:因为删除了两次,所以显示的4
获取数组长度size():直接用return返回this.size的值
代码如下:
测试结果如下:
清空clear():把原有数组定义为初始值10,长度改为初始值0
代码如下:
总结:如何存储数据是最基本的操作,我们应该多加练习
来源:https://blog.csdn.net/Oonelost/article/details/95512104
0
投稿
猜你喜欢
- 我们知道在编程时许多操作(如更新UI)需要在主线程中完成,而且,耗时操作(如网络连接)需要放在子线程中,否则会引起ANR。所以我们常使用Ha
- 先看代码public class MaxHuiWen {public static void main(String[] args) { &
- 命令仓库 Ctrl + Shift + A 可以搜集对应命令快捷键1、基础快捷键1.1、无处不在的跳转项目之间的跳转1.1.1、项目项目之间
- Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思义,Fork Join类似与流程语言的分支,合并的概念。也就是说Jav
- SpringAOP的介绍:传送门demo介绍主要通过自定义注解,使用SpringAOP的环绕通知拦截请求,判断该方法是否有自定义注解,然后判
- 当我们对一些需要用到的资料进行整理时,会发现文件的内存占用很大,不过是下载或者存储,都不是很方便,这时候我们会想到把文件变成zip格式,即进
- 目录前言Hello World1.可以在 Spring Initializr上面添加,也可以手动在 pom.xml中添加如下代码∶2. 编写
- 本文实例为大家分享了JavaFX实现简单日历效果的具体代码,供大家参考,具体内容如下1.先看效果:2.代码:1)ClockEdge.java
- 最近在刷力扣上的题目,刷到了65不同路径,当初上大学的时候,曾在hihocoder上刷到过这道题目,但是现在已经几乎全忘光了,大概的知识点是
- 前沿知识ThreadLocal存储线程变量,使用set方法设置变量,使用get方法获取变量线程隔离的实现是每个Thread类有一个类型为Th
- Sequence序列Sequence 是Kotlin标准库提供的一种容器类型。它和Iterable一样具备对集合进行多步骤操作能力,但是却是
- 1、取得控制台应用程序的根目录方法方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径方法
- 下面通过代码给大家介绍c++ string insert() 函数,具体内容如下:basic_string& inser
- 一、Rxjava使用场景为了模拟实际场景,从wanandroid网站找了二个接口,如下:(对Wanandroid表示感谢!)public i
- 需求: 给定一个URL地址, 例如: http://www.cncounter.com/tools/shorturl.php, 解析对应的I
- 前言大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点
- 直接用idea clean install 进行打包maven项目时,如果没有进行设置会把测试文件也打包进去。想要忽略test文件将Mave
- 数据库里面表的字段中带有“”_“下划线,我们知道插件默认的是将这些带有下划线的字段默认的变成“优美的驼峰式”的。表是肯定不能动的,实体类的字
- 最近学习了一下seata,由于nacos现在也挺火,于是学习了seata注册到nacos,然后集成springcloud1.nacos配置(
- Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限Android官