真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ArrayList類(lèi)的簡(jiǎn)單編寫(xiě)

ArrayList類(lèi)

創(chuàng)新互聯(lián)建站是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,服務(wù)器托管機(jī)柜,海外高防服務(wù)器,成都機(jī)柜租用,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。

編寫(xiě)ArrayList類(lèi)

package com.mage.arrays;

public class ArrayList {

private Object[] arrs;

private int size; //數(shù)組實(shí)際存儲(chǔ)元素個(gè)數(shù)

private int capacity;//底層arrs數(shù)組的長(zhǎng)度,也就是開(kāi)的內(nèi)存空間大小

private static final int DEFAULT_CAPACITY = 10;

public ArrayList() {

this(DEFAULT_CAPACITY);

}

public ArrayList(int capacity) {

arrs = new Object[capacity];

this.capacity = capacity;

}

/**

* @return 返回?cái)?shù)組實(shí)際存儲(chǔ)的元素個(gè)數(shù)

*/

public int size(){

return this.size;

}

/**

* @return 返回當(dāng)前ArrayList底層數(shù)組的容量

*/

public int opacity() {

return arrs.length;

}

/**

* @return 返回當(dāng)前數(shù)組是否為null

*/

public boolean isEmpty() {

return this.size==0;

}

/**

* 添加元素到指定的位置上

* @param value 添加的元素

* @param index 添加的位置

*/

public void add(Object value,int index) {

if(index<0||index>size) {

System.out.println("錯(cuò)誤參數(shù):index");

return;

}

//存滿了

if(size==arrs.length) {

resize(size*2);

}

for(int i=size-1;i>=index;i--) {

arrs[i+1]=arrs[i];

}

arrs[index]=value;

size++;

}

/**

* 添加首元素

* @param value 添加的元素值

*/

public void addFirst(Object value) {

add(value,0);

}

/**

* 添加尾元素

* @param value

*/

public void addLast(Object value) {

add(value,size);

}

/**

* 查詢(xún)指定元素在當(dāng)前數(shù)組中的索引位置(只找一個(gè))

* @param value

* @return 查找的元素的索引 如果不存在返回-1

*/

public int getIndexByValue(Object value) {

for(int i=0;i

if(arrs[i]==value) {

return i;

}

}

return -1;

}

/**

* 返回指定索引位置上的元素

* @param index 索引

* @return 元素 如果返回null代表當(dāng)前數(shù)組的入?yún)⒂姓`

*/

public Object get(int index) {

if(index<0||index>=size) {

System.out.println("參數(shù)有誤:index");

return null;

}

return this.arrs[index];

}

/**

* 修改數(shù)組中指定位置上的元素

* @param index 指定的索引

* @param value 修改之后的值

* @return 修改之前的值 如果索引有問(wèn)題 返回null

*/

public Object set(int index,Object value) {

if(get(index)==null) {

return null;

}

Object oldValue=arrs[index];

arrs[index]=value;

return oldValue;

}

/**

* 根據(jù)索引刪除元素

* @param index 索引

* @return 刪除的元素 如果索引有誤 返回null

*/

public Object remove(int index) {

if(get(index)==null) {

return null;

}

Object oldValue = arrs[index];

for(int i=index;i

arrs[i]=arrs[i+1];

}

size--;

arrs[size]=null;

if(size==arrs.length/4&&arrs.length/2>0) {

resize(arrs.length/2);

}

return oldValue;

}

/**

* 刪除第一個(gè)元素

* @return

*/

public Object removeFirst() {

return remove(0);

}

/**

* 刪除最后元素

* @return

*/

public Object removeLast() {

return remove(size-1);

}

/**

* 數(shù)組擴(kuò)容操作

* @param capacity 新數(shù)組的容量

*/

private void resize(int capacity) {

Object[] newArrs = new Object[capacity];

copyOf(arrs,newArrs);

arrs = newArrs;

}

/**

* 數(shù)組復(fù)制

* @param src 源數(shù)組

* @param dest 目標(biāo)數(shù)組

*/無(wú)錫人流多少錢(qián) http://www.bhnnk120.com/

private void copyOf(Object[] src,Object[] dest) {

for(int i=0;i

dest[i]=src[i];

}

}

/**

* 獲取當(dāng)前ArrayList的內(nèi)容

*/

public String toString() {

StringBuffer sb = new StringBuffer();

sb.append("size:"+this.size+"\topacity:"+this.arrs.length+"\t");

sb.append("[");

for(int i = 0;i

sb.append(arrs[i]);

if(i!=size-1) {

sb.append(",");

}

}

sb.append("]");

return sb.toString();

}

}

測(cè)試類(lèi)

package com.mage.arrays;

public class TestArrayList {

public static void main(String[] args) {

// ArrayList存儲(chǔ)數(shù)據(jù)的對(duì)象

ArrayList arrayList = new ArrayList();// size = 0 capacity 10

//測(cè)試增加不同類(lèi)型值

arrayList.addFirst('a');

arrayList.addFirst("哈哈");

arrayList.addFirst(44);

System.out.println(arrayList.toString());

//測(cè)試在最后位置加值

arrayList.addLast(33);

System.out.println(arrayList.toString());

//測(cè)試元素加滿了,內(nèi)存擴(kuò)容。

arrayList.addLast(33);

arrayList.addLast(33);

arrayList.addLast(33);

arrayList.addLast(33);

arrayList.addLast(33);

arrayList.addLast(44);

arrayList.addLast(55);

System.out.println(arrayList.toString());

//測(cè)試移除增加元素會(huì)撤回?cái)U(kuò)容嘛

arrayList.remove(0);

System.out.println(arrayList.toString());

//測(cè)試元素個(gè)數(shù)為原來(lái)的四分之一會(huì)壓縮一半內(nèi)存嘛

arrayList.remove(0);

arrayList.remove(0);

arrayList.remove(0);

arrayList.remove(0);

arrayList.remove(0);

System.out.println(arrayList.toString());

//測(cè)試修改

arrayList.set(1, "被修改了");

System.out.println(arrayList.toString());

}

}

ArrayList類(lèi)的簡(jiǎn)單編寫(xiě)

分享題目:ArrayList類(lèi)的簡(jiǎn)單編寫(xiě)
標(biāo)題路徑:http://weahome.cn/article/jhjjss.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部