Collection 老祖先,接口(interface)
List 子接口
ArrayList,LinkedList,Vector 实现类
Set 子接口
HashSet(无序),TreeSet(有序)
ArrayList:动态数组,表示数组长度可变
ArrayList,LinkedList 使用方法完全一样, 区别:
数据存储方式不一样,称为不同的数据结构
ArrayList:基于数组实现(优点:连续存放,查找速度比较快,缺点是增加元素或者删除元素比较慢),
LinkedList基于链表实现(缺点:不连续存放,查找速度比较慢,优点:增加元素或删除元素比较快)。
List 子接口
ArrayList,LinkedList,Vector 实现类
Set 子接口
HashSet(无序),TreeSet(有序)
ArrayList:动态数组,表示数组长度可变
ArrayList,LinkedList 使用方法完全一样, 区别:
数据存储方式不一样,称为不同的数据结构
ArrayList:基于数组实现(优点:连续存放,查找速度比较快,缺点是增加元素或者删除元素比较慢),
LinkedList基于链表实现(缺点:不连续存放,查找速度比较慢,优点:增加元素或删除元素比较快)。
Vector 向量:基于数组实现的,但是已经过时,现在都用ArrayList
代码:
package javastudy;
import java.util.ArrayList;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> al=new ArrayList<String>();
al.add("北京");
al.add("上海");
al.add("天津");
al.add(0,"重庆");
print1(al);
System.out.println("-----------------------");
al.set(1, "Beijing");//修改元素
print1(al);
System.out.println("-----------------------");
al.remove(2); //删除元素
print2(al); //print2 方法打印
}
static void print1(ArrayList<String> al) {
for(int i=0;i<al.size();i++) //al.size()
{
System.out.print(al.get(i));//al.get(i)
}
}
static void print2(ArrayList<String> al){
Iterator<String>it=al.iterator();//相当于元素指针
while(it.hasNext()){
System.out.print(it.next());
}
}
}
截图: