集合框架中的实现类-ArrayList
- ArrayList:我们可以将其看作是能够自动增长容量的数组;(file 1)
- 利用ArrayList的toArray()返回一个数组;(file 2)
- Array.asList()返回一个列表;(file 3)
- 迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素;(file 4)
## file 1 ##
import java.util.*;
class ALTest{
@SuppressWarnings("unchecked")
public static void main(String[] args){
ArrayList<String> al = new ArrayList<String>();
al.add("zhangsan");
al.add("lisi");
al.add("wmz");
for(int i = 0;i < al.size(); i ++){
System.out.println(al.get(i));
}
}
}
public boolean add(E e) {
ensureCapacityInternal(size + 1);
elementData[size++] = e;
return true;
}
private void grow(int minCapacity) {
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + (oldCapacity >> 1);
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
elementData = Arrays.copyOf(elementData, newCapacity);
}
public static short[] copyOf(short[] original, int newLength) {
short[] copy = new short[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
## file 2 ##
import java.util.*;
class ALTest{
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add(new Point(3,3));
al.add(new Point(1,1));
al.add(new Point(2,2));
Object cl[] = al.toArray();
for(int i = 0 ;i < cl.length;i++){
System.out.println(cl[i]);
}
}
}
class Point{
int x , y;
Point(int x,int y){
this.x = x;
this.y = y;
}
public String toString(){
return "x="+x+"y="+y;
}
}
## file 3 ##
import java.util.*;
class ALTest{
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add(new Point(3,3));
al.add(new Point(1,1));
al.add(new Point(2,2));
Object cl[] = al.toArray();
List l = Arrays.asList(cl);
System.out.println(l);
}
}
class Point{
int x , y;
Point(int x,int y){
this.x = x;
this.y = y;
}
public String toString(){
return "x="+x+"y="+y;
}
}
## file 4 ##
import java.util.*;
class ALTest{
public static void main(String[] args){
ArrayList al = new ArrayList();
al.add(new Point(3,3));
al.add(new Point(1,1));
al.add(new Point(2,2));
Iterator i = al.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}
class Point{
int x , y;
Point(int x,int y){
this.x = x;
this.y = y;
}
public String toString(){
return "x="+x+"y="+y;
}
}