Java動態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類型方式
Java動態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類型
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可以存放任何對象的引用;其是有序的可重復(fù)的;取出時是Object對象,需要強制轉(zhuǎn)化
自定義一個動態(tài)數(shù)組ArrayList,加深對動態(tài)數(shù)組的理解
動態(tài)數(shù)組主要用來保存多個相同類型的數(shù)據(jù)
主要做添加
添加:首先判斷定義的數(shù)組長度是否小于等于原有空間,當(dāng)滿足這個條件時,就創(chuàng)建一個新的長度變量newlength等于它原有的長度加上原有的長度右移一位(位移比除法的運算速度快)。定義一個新數(shù)組newinformation存放數(shù)據(jù),用System.arraycopy進(jìn)行拷貝,將原有數(shù)組數(shù)據(jù)拷貝到新數(shù)組。
代碼如下:

測試結(jié)果:

- 獲取get():直接判斷下標(biāo)是否超過數(shù)組長度,如果超過就拋出下標(biāo)越界異常。然后直接根據(jù)下標(biāo)返回該數(shù)組對應(yīng)的值。
代碼如下:

測試結(jié)果:

- 改set():首先依舊判斷下標(biāo)是否越界,直接根據(jù)下標(biāo)給對應(yīng)數(shù)組data[index]把t的值賦給它.
代碼如下:

測試結(jié)果如下:

- 刪除remove():首先還是判斷下標(biāo)是否越界,定義一個T類型的r把要刪除的對應(yīng)下標(biāo)數(shù)組的值賦值給它。然后判斷下標(biāo)加1是否等于原有空間大小,在不等于的情況下,把它要刪除下標(biāo)的后一個值傳給要刪除下標(biāo)的值,以此類推。把數(shù)據(jù)最后一位的值定義為空null.最后返回刪除的值。
代碼如下:

測試結(jié)果如下:因為刪除了兩次,所以顯示的4

- 獲取數(shù)組長度size():直接用return返回this.size的值
代碼如下:

測試結(jié)果如下:

- 清空clear():把原有數(shù)組定義為初始值10,長度改為初始值0
代碼如下:

總結(jié):如何存儲數(shù)據(jù)是最基本的操作,我們應(yīng)該多加練習(xí)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
深入淺析Mybatis與Hibernate的區(qū)別與用途
這篇文章主要介紹了Mybatis與Hibernate的區(qū)別與用途的相關(guān)資料,需要的朋友可以參考下2017-10-10
詳解Java設(shè)計模式編程中命令模式的項目結(jié)構(gòu)實現(xiàn)
這篇文章主要介紹了Java設(shè)計模式編程中命令模式的項目結(jié)構(gòu)實現(xiàn),命令模式將請求與執(zhí)行分離,可以多個命令接口的實現(xiàn)類,隱藏真實的被調(diào)用方,需要的朋友可以參考下2016-04-04
springboot?vue接口測試定義編輯功能的實現(xiàn)
這篇文章主要為大家介紹了springboot?vue接口測試定義編輯功能的實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
淺析 ArrayList 和 LinkedList 有什么區(qū)別
ArrayList 和 LinkedList 有什么區(qū)別,是面試官非常喜歡問的一個問題。今天通過本文給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧2020-10-10

