八十五、List–接口:可以有顺序的存放相同数据,可以存放null值,3种遍历方式
ArrayList–类:底层是用数组来实现的,线程不安全的
LinkedList–类:底层是双向链表
Vector–类:与ArrayList大致相同,线程安全
Stack–类:栈模型,先进后出
八十六、ArrayList
用add方法添加数据,自动装箱: arr.add(10);
参数为int类型,指定索引删除: arr.remove(0); arr.remove(null);
获取指定索引位的元素:arr.get(0);
修改:arr.set(0, new Student(“小红”,18));
清空元素:arr.clear();
判断集合是否包含某个元素: arr.contains(null);
查看元素的第一次索引:arr.indexOf(o);
for遍历
for(int i=0;i<arr.size();i++) {
System.out.print(arr.get(i)+" ");
}
增强for循环遍历
for(Object o:arr) {
System.out.print(o+" ");
}
迭代器-遍历集合
Iterator i=arr.iterator();
while(i.hasNext()) {
// arr.remove(i.next());//不允许直接对元素进行增加、删除操作
System.out.print(i.next());
i.remove();
//如果想要删除元素,可以调用iterator自己的删除方法
注意:
ArrayList的长度是动态扩展的;
ArrayList可以存放相同数据,可以存放null值
ArrayList底层是数组,查找比较快,增加和删除相对来说效率不高;
LinkedList,对元素的增加删除比较快,查找相对来说效率不高。
八十八、Stack栈
先进后出,一般用在进制转换
三种遍历方式(for循环,增强for循环,迭代器)
for循环
for(int i=0;i<s.size();i++) {
System.out.print(s.elementAt(i)+ " ");
}
返回的栈底元素(第一个入栈的元素)
System.out.println(s.firstElement());