import java.util.*;
public class ExpandableArrayList<T> { private T[] entry;
private int length;
private static int initialCapacity = 10;
@SuppressWarnings("unchecked")
public ExpandableArrayList(int num){
//this.length = length;
entry = (T[])new Object[num];
this.length = entry.length;
System.out.println(entry.length);
}
//在末尾插入新元素
public boolean add(T newEntry){
if(isArrayFull()) //如果数组满了 使用isArrayFull方法判断
doubleArray(); //那么就扩大一倍 使用doubleArray方法
entry[length] = newEntry;
length++;
return true;
}
public boolean isArrayFull(){
return this.length == entry.length;
}
private void doubleArray(){
T[] oldEntry = entry;
int oldSize = oldEntry.length;
entry = (T[])new Object[2*oldSize]; //需要强制类型转换
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ExpandableArrayList<String> Ex = new ExpandableArrayList<String>(2);
//Ex.length = 2;
Ex.add("a");
Ex.add("b");
Ex.add("b");
Ex.add("b");
int a = Ex.entry.length; //这句会出现一个错误
//Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
// at ExpandableArrayList.main(ExpandableArrayList.java:44)
//System.out.println(Ex.add("b"));
//System.out.println(Ex.add("b"));
// System.out.println(Ex.entry.length);
}}求问为什么
解决方案 »
- 问一个JFame中的布局和按钮和JTable问题,很实用哦!欢迎各路大神前来一游
- 不知道这个问题发在那里,就发在这里吧,怎样对界面中的一些控件进行国际化?
- HttpClient能否直接获取服务器的request对象
- 请教大家一个问题!今天我面试的题目
- 有没有办法让jtoolbar响应鼠标双击事件?
- 如何学习java中的方法
- 十万火急*如何加键盘监听事件......本人性急,在线等。请高手指点救命。
- 我刚刚起步,以前学的delphi,有什么入门快的好书介绍一下呀!?!
- 有scjp证书,大学英语四级,六级证书.希望在上海找一份JAVA程序员的工作,哪位老兄可以给介绍引荐一下.拜托了!
- Map集合继承
- 求:把字符串间的若干空格去掉一个的算法
- 如何指定ant javac编译时用的jdk
是private型的,你能用吗
但我就是没找出来是什么原因。
要跟你说点儿别的。
private void doubleArray(){
T[] oldEntry = entry;
int oldSize = oldEntry.length;
entry = (T[])new Object[2*oldSize]; //需要强制类型转换
}调完这个后,先存的数据就没有了。
public boolean isArrayFull(){
return this.length == entry.length;//这句有误
}
int c=b.length;
System.out.println(c);这样就行了!T也是默认是Object的!!哇哈哈!!
getOb();
public T[] getOb() {
return (T[])entry;
}
你在判断数组是否满的时候还是这句,导致数组里边有些元素是null
ClassCastException:
Object x = new Integer(0);
System.out.println((String)x);
当你将一个object数组强制转换为String数组的时候也会产生这个异常,虽然string是object
的子类但是数组却不好说,这个就是原因的所在。
另外你的判断数组是否满的地方也有问题