C g*_*ics 5 java collections arraylist
我试图实现我自己的ArrayList而不使用java集合进行练习.在这个阶段我想实现两个主要方法,add(E)和get(int)tp得到这个想法.我的代码如下.但是我遇到了一些问题:
PS.请不要只回答问题3,并将我推荐给一两个蔗糖代码!
import java.util.Arrays;
public class MyArrayList<E>{
private final int DEFAULT_SIZE=2;
private Object[] myData = new Object[DEFAULT_SIZE];
private int actSize=0;
public boolean add(E data){
if (actSize>=myData.length/2){
increaseSize();
}
myData[actSize++] = data;
return true;//when can it be false?
}
private void increaseSize()throws RuntimeException{
myData = Arrays.copyOf(myData, myData.length*2);
}
public E get(int index) throws RuntimeException{
if (index >= actSize){
throw new IndexOutOfBoundsException();
}
return (E) myData[index];
}
public static void main(String[] args) {
MyArrayList<String> arList = new MyArrayList<>();
arList.add("Hello");
arList.add("Bye bye!");
System.out.println(arList.get(1));// prints Bye bye! which is correct
}
}
Run Code Online (Sandbox Code Playgroud)
“return (E) myData[index]”行发出警告“类型安全:未检查从对象到 E 的转换”。我该如何解决这个问题
抑制警告
@SuppressWarnings("unchecked")
Run Code Online (Sandbox Code Playgroud)
Java 7 实现
ArrayList.add(T)返回一个boolean. 什么情况下add()必须返回false。它按照什么逻辑返回false以及何时返回true?
请参阅javadoc
返回:(
true由 指定Collection.add(E))
它总是会回来true。
在哪里可以找到java 7实现ArrayList的源代码
在 JDK 安装的src.zip存档中或通过简单搜索在线找到它
java ArrayList 源代码
| 归档时间: |
|
| 查看次数: |
13371 次 |
| 最近记录: |