精心整理了最新的面试资料和简历模板,有需要的可以自行获取
List接口
List子接口
代码演示:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Test02 {
public static void main(String[] args) {
List list = new ArrayList();
//1.add()添加元素
list.add("java");
list.add("python");
list.add(0,"c++");
System.out.println("元素个数:" + list.size());
System.out.println(list.toString());
//2.remove()删除元素
list.remove(0);
System.out.println("删除之后元素个数:" + list.size());
System.out.println(list.toString());
//3.遍历
System.out.println("--------3.1for遍历---------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("--------3.2增强for---------");
for (Object object:list
) {
System.out.println(object);
}
System.out.println("--------3.3迭代器---------");
Iterator iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("--------3.4列表迭代器---------");
//可以向前或向后遍历,可以添加、修改、删除元素
ListIterator listIterator = list.listIterator();
System.out.println("--------从前往后遍历----------");
while (listIterator.hasNext()){
System.out.println(listIterator.nextIndex() + ":" + listIterator.next());
}
System.out.println("--------从后往前遍历----------");
while (listIterator.hasPrevious()){
System.out.println(listIterator.previousIndex() + ":" + listIterator.previous());
}
//4.判断
System.out.println(list.contains("c"));
System.out.println(list.isEmpty());
//5.获取位置
System.out.println(list.indexOf("java"));
}
}
结果:
import java.util.ArrayList;
import java.util.List;
public class Test03 {
public static void main(String[] args) {
List list = new ArrayList();
//1.添加数字数据(自动装箱)
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println("元素个数" + ":" + list.size());
System.out.println(list.toString());
//2.删除操作
list.remove(0);
System.out.println("删除后元素的个数:" + list.size());
System.out.println(list.toString());
//3.sublist(),返回子集合,含头不含尾
List sublist = list.subList(1,3);
System.out.println(sublist.toString());
}
}
结果:
List实现类
ArrayList使用
代码演示:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Test04 {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
Student s1 = new Student("www",23);
Student s2 = new Student("sss",25);
Student s3 = new Student("aaa",24);
arrayList.add(s1);
arrayList.add(s2);
arrayList.add(s3);
System.out.println("元素个数:" + arrayList.size());
System.out.println(arrayList.toString());
//使用迭代器
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
Student student = (Student)iterator.next();
System.out.println(student.toString());
}
//使用列表迭代器(顺序)
ListIterator listIterator = arrayList.listIterator();
while (listIterator.hasNext()){
Student student = (Student)listIterator.next();
System.out.println(student.toString());
}
//列表迭代器(逆序)
while (listIterator.hasPrevious()){
Student student = (Student)listIterator.previous();
System.out.println(student.toString());
}
//4.判断
System.out.println(arrayList.contains(new Student("aaa",56)));
System.out.println(arrayList.isEmpty());
//5.查找
System.out.println(arrayList.indexOf(s2));
}
}
代码结果:
源码分析
- DEFAULT_CAPACITY = 10;默认容量
- 如果没有向集合中添加任何元素时,容量是0,添加一个元素后容量为10,超过进行扩容每次扩大原来的1.5倍
- elementData:存放元素的数组
- size:实际元素个数
Vector使用
代码演示;
import java.util.Enumeration;
import java.util.Vector;
public class Test05 {
public static void main(String[] args) {
Vector vector = new Vector();
//1.添加元素
vector.add("java");
vector.add("python");
vector.add("C++");
System.out.println("元素个数:" + vector.size());
//2.删除
// vector.remove(0);
// vector.remove("java");
// vector.clear();
//3.遍历,使用枚举器
Enumeration enumeration = vector.elements();
while (enumeration.hasMoreElements()){
String str = (String)enumeration.nextElement();
System.out.println(str);
}
//4.判断
System.out.println(vector.contains("java"));
System.out.println(vector.isEmpty());
}
}
代码结果:
LinkedList的使用
代码演示:
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
public class Test06 {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
Student s1 = new Student("www",23);
Student s2 = new Student("sss",25);
Student s3 = new Student("aaa",24);
//1.添加
linkedList.add(s1);
linkedList.add(s2);
linkedList.add(s3);
System.out.println("元素个数:" + linkedList.size());
System.out.println(linkedList.toString());
//2.删除
// linkedList.remove(0);
// linkedList.remove(s1);
// linkedList.clear();
//3.遍历
System.out.println("--------for遍历---------");
for (int i = 0; i < linkedList.size(); i++) {
System.out.println(linkedList.get(i));
}
System.out.println("--------增强for---------");
for (Object object:linkedList
) {
Student student = (Student)object;
System.out.println(student.toString());
}
System.out.println("--------使用迭代器---------");
Iterator iterator = linkedList.listIterator();
while (iterator.hasNext()){
Student student = (Student)iterator.next();
System.out.println(student.toString());
}
System.out.println("--------列表迭代器---------");
ListIterator listIterator = linkedList.listIterator();
while (listIterator.hasNext()){
Student student = (Student)listIterator.next();
System.out.println(student.toString());
}
//4.判断
System.out.println(linkedList.contains(s1));
System.out.println(linkedList.isEmpty());
//5.获取索引
System.out.println(linkedList.indexOf(s2));
}
}
代码结果:
ArrayList和LinkedList的区别
不同结构实现方式