这两天期中考试,感觉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());
}
}
}
当然一些有其他的操作也可以自己来添加啦!!!