标签:arraylist
类型不兼容的错误集合
package com.yuanzijian02;
import java.util.ArrayList;
public class ArrayList2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList list = new ArrayList();
list.add("hello");
list.add(new Integer(2));
String str = (String)list.get(0);
String in = (String)list.get(1);
}
}执行结果
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at com.yuanzijian02.ArrayList2.main(ArrayList2.java:14)
2.从集合中取出数据,然后相加
package com.yuanzijian03;
import java.util.ArrayList;
public class ArrayListTest3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList list = new ArrayList();
list.add(new Integer(3));
list.add(new Integer(4));
list.add(new Integer(5));
list.add(new Integer(6));
int sum = 0;
for(int i = 0; i< list.size(); i++){
int value = ((Integer)list.get(i)).intValue();
sum += value;
}
System.out.println(sum);
}
}执行结果
18
3.重写toString()方法
package com.yuanzijian05;
import java.util.ArrayList;
public class ArrayListTest5 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList list = new ArrayList();
list.add(new Point(2,3));
list.add(new Point(2,2));
list.add(new Point(2,4));
list.add(new Point(2,5));
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
System.out.println(list);
}
}
class Point{
int x;
int y;
Point(int x, int y){
this.x = x;
this.y = y;
}
@Override
public String toString() {
// TODO 自动生成的方法存根
return "x = " + this.x + ", y = " + this.y;
}
}执行结果
x = 2, y = 3 x = 2, y = 2 x = 2, y = 4 x = 2, y = 5 [x = 2, y = 3, x = 2, y = 2, x = 2, y = 4, x = 2, y = 5]
4.在集合中存放的依然是对象的引用而不是对象的本身
5.ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型的数组
6.如果增加的元素个数超过了10个个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容会放到新的数组当中,但新数组无法容纳增加的元素时,重复该过程
7.对于ArrayList元素的删除操作,需要将被删除元素的后续向前移动,这是一个代价比较高的元素
8.集合当中只能放置对象引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中
9.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。
标签:arraylist
原文地址:http://hnyuanzijian.blog.51cto.com/8869344/1775553