使用java內部類實現自己的容器
阿新 • • 發佈:2018-11-17
這兩天期中考試,感覺Java答得不是很好,所以決定將Java抓一下,不能整天光抱著c++不放,儘管c++是我的主要學習方向,但java是我的專業課程,學不好的話以後的課設和畢設就真的涼了!!!還是自己不會利用時間,看周圍一些人,他們總是可以多頭兼顧,我這一天下來卻不知道自己忙了些啥!這些都是題外話,不說了。用java內部類來實現一個容器不是很難,他的原理就是在外部類中定義一個存放內部類物件的一定長度的陣列,讓後在內部類中定義get和set方法,定義內部類物件屬性,相當於將內部類封裝起來,外部類負責用容器接收定義好的內部類物件,外部可以通過外部類來實現訪問內部類的目的!大概我也說的不是很清楚!如果你覺的理解我說的話在浪費生命,那說明你的感覺是對的!也許舒服的java程式碼會讓你心曠神怡!
import java.util.Arrays;
class Containor{
//定義一個數組來接收內部類物件
Entry[] En = new Entry[12];
static int count = 0 ;
//設定內部類物件的屬性
public void put(String key,String value) {
//計數器,用來判斷陣列是否已滿
if(count >= En.length) {
//如果陣列已滿,那就將原陣列的長度擴大為原來的兩倍
//這裡所用的方法可以查API哦~~~
int newCapacity = 2*En.length;
En = Arrays.copyOf(En,newCapacity);
}
else {
//通過定義內部類方法來對內部類賦值
Entry ec = new Entry();
ec.setKey(key);
ec.setValue(value);
//將物件加入到陣列中
En[count++] = ec;
}
}
//將物件陣列中有效的儲存部分返回給外部
public Entry[] EntryArr() {
return Arrays.copyOfRange(En,0,count) ;
}
public class Entry{
private String key ;
private String value ;
public void setKey(String key) {
this.key = key ;
}
public void setValue(String value) {
this.value = value ;
}
public String getValue() {
return this.value ;
}
public String getKey() {
return this.key ;
}
}
}
public class MyVector {
public static void main(String[] args) {
//用法示例
Containor cc = new Containor();
cc.put("1", "changke");
cc.put("2","chengxin");
cc.put("3","liuchang");
//定義內部物件的陣列
Containor.Entry[] en = cc.EntryArr();
for(int i = 0 ;i< en.length ;i++) {
System.out.println(en[i].getValue()+"----------"+en[i].getKey());
}
}
}
當然一些有其他的操作也可以自己來新增啦!!!