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


猜你喜欢
- 前言在产品发布前夕,经常因为编写各类设计文档感到心碎,倒不是难,而是比较繁琐,举例来说,像编写数据库文档这种操作来说,对于新手,甚至很多有一
- 因为课程需要,昨天好多同学在安装Android studio3.6.1后,无法构建,不知道什么原因,我的电脑上使用的是之前3.4版本的,可以
- 前言相信做地图社交类APP开发的大家都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式。本文中实现的方式都是基
- 本文实例分析了C#中Convert.ToString和ToString的区别,对于初学者来说是很有必要加以熟练掌握的。具体分析如下:1.Co
- 一、新建学生节点类Stu_Node节点包含:学号:int num;姓名:String name;性别:String gender;下一个节点
- jackson反序列化忽略字段JSON字符串中含有我们并不需要的字段,那么当对应的实体类中不含有该字段时,会抛出一个异常,告诉你有些字段没有
- 前言:Java 中 hashCode() 和 equals() 的关系是面试中的常考点,如果没有深入思考过两者设计的初衷,这个问题将很难回答
- Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。先给大家分享下我的解决思路:不用计
- 之前使用springMVC+spring+mybatis,总是被一些繁琐的xml配置,有时候如果配置出错,还要检查各种xml配置,偶然接触到
- 背景之前我不想用注解来写启动框架,因为启动框架需要的参数太多了。将参数都定义在注解内和写一个task就没有本质上的差别,所以一直觉得没必要用
- POM<dependency> <groupId>org.springframework.boot<
- 1. mapper.xml设置resultTyperesultType="com.alibaba.fastjson.JSONObj
- 1 使用阿里的FastJson1.1 项目的pom.xml依赖<dependency> <groupId>com.a
- 解析得到的代码能通过XHTML 1.0 STRICT验证;包含了标题,链接,字体,对齐,图片,引用,列表等方面的功能.&
- 1.线程的几种状态1.1 线程的状态以下就是我们线程所有的状态和意义:NEW已经创建Thread但未创建线程RUNNABLE可工作的. 又可
- 对于因为编程错误而导致的异常,或者是不能期望程序捕获的
- C语言的指针相当的灵活方便,但也相当容易出错。许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下。但不可否认的是,指针在C语言中的
- * 其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承P
- 1.剖析异或运算(^) 二元 ^ 运算符是为整型和 bool 类型预定义的。对于整型,^ 将计算操作数的按位“异或”。对于 bool 操作数
- 前言Google终于发布了一个和SQLite相关的库了。之前一直都是在SQLite、XUtils、greenDao、Realm这些数据库之间