ArrayList是动态数组,动态的增加和删除元素,实现了ICollection和Ilist的接口,灵活设置数组的大小
ArrayList类只支持对象类型,不能存储基础数据类型在删除元素时,采用倒序删除等方法(否则可能会越界报错)http://www.cnblogs.com/flotang/p/9216098.html
在使用add方法要注意:在添加时要在for循环中重新new一个对象,否则会造成添加的都是同一个元素,
在类中变量尽量少使用static,static类型的数据是不可以修改的,定量可以多用static,可以少加载的次数静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。在static方法内部不能调用非静态方法,static方法中没有this方法静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
对ArrayList排序可以用Collections.sort()从小到大排序要修改排序方法时,将被排序对象类implements Comparable<>,并override compareTo()方法
class PNubmer implements Comparable<PNubmer>{
int n;
double a;
public void setN(int n) {
this.n = n;
}
public void setA(double a) {
this.a = a;
}
@Override
public int compareTo(PNubmer o) {
// TODO Auto-generated method stub
if (this.n > o.n) {
return -1;
}else if (this.n < o.n) {
return 1;
}
return 0;
}
}
ArrayList中的常用方法:https://blog.csdn.net/isabellebaby007/article/details/78177865?locationNum=6&fps=1
ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。