Collection子接口、实现类:

list常用方法:
public static void fun() {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add(4, "x");
System.out.println(list);
Object object = list.get(2);
System.out.println(object);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
list.set(4, "z");
System.out.println(list);
}

删除注意点:
public static void fun() {
List list = new ArrayList();
list.add(111);
list.add(222);
list.add(333);
list.remove(Integer.valueOf(111));
System.out.println(list);
}
并发修改异常:
public static void fun() {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
if (iterator.next().equals("b")) {
list.add("Oh~Yes");
}
}
System.out.println(list);
}

解决并发修改异常:
public static void fun() {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
if (listIterator.next().equals("b")) {
listIterator.add("Oh~Yes");
}
}
System.out.println(list);
}

List特有迭代器(逆向遍历):
public static void fun() {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next());
}
while (listIterator.hasPrevious()) {
System.out.println(listIterator.previous());
}
}

实现类:
Vector:
public static void fun() {
Vector vector = new Vector();
vector.addElement("a");
vector.addElement("b");
vector.addElement("c");
vector.addElement("d");
System.out.println(vector);
Enumeration elements = vector.elements();
while(elements.hasMoreElements()) {
System.out.println(elements.nextElement());
}
}

LinkedList:
public static void fun7() {
// linkedList
LinkedList linkedList = new LinkedList()
// 使用addFirst方法添加
linkedList.addFirst("a")
linkedList.addFirst("b")
linkedList.addFirst("c")
linkedList.addFirst("d")
System.out.println(linkedList)
// 使用addLast方法添加
linkedList.addLast("a")
linkedList.addLast("b")
linkedList.addLast("c")
linkedList.addLast("d")
System.out.println(linkedList)
// 获取头尾元素
System.out.println(linkedList.getFirst())
System.out.println(linkedList.getLast())
}

ArrayList和LinkedList的区别:

ArrayList:数组实现
数组实现 特点:查询快 增删慢(参照于LinkedList)
查询:直接使用角标查询
增删:把要添加元素 后面元素位置全部移动一位
LinkedList:链表实现
链表实现 特点:查询慢 增删快
查询:判断离头近还是离尾近 从头或尾 一个一个查找 找到为止
增删:将要插入的元素的地址保存 后面元素不用进行任何改动
队列结构和栈结构:
栈结构的特点: 先入 后出
队列结构特点: 先进 先出
模拟栈结构:
public static void fun() {
LinkedList linkedList = new LinkedList();
linkedList.addLast("a");
linkedList.addLast("b");
linkedList.addLast("c");
linkedList.addLast("d");
System.out.println(linkedList);
while (!linkedList.isEmpty()) {
Object removeLast = linkedList.removeLast();
System.out.println(removeLast);
}
}

ArrayList去重:
public static void fun() {
ArrayList arrayList = new ArrayList();
arrayList.add("a");
arrayList.add("a");
arrayList.add("a");
arrayList.add("b");
arrayList.add("b");
arrayList.add("b");
arrayList.add("c");
arrayList.add("c");
arrayList.add("c");
System.out.println(arrayList);
ArrayList newList = new ArrayList();
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
if (!newList.contains(next)) {
newList.add(next);
}
}
System.out.println(newList);
}

设计实例:
public class Student {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "姓名:" + name + " 年龄:" + age;
}
@Override
public boolean equals(Object obj) {
Student student = (Student)obj;
return this.name.equals(student.getName()) && this.age == student.getAge();
}
}
public static void fun() {
ArrayList list = new ArrayList();
list.add(new Student("鹏鹏", 18));
list.add(new Student("鹏鹏", 18));
list.add(new Student("水水", 17));
list.add(new Student("水水", 17));
list.add(new Student("兴兴", 16));
list.add(new Student("兴兴", 16));
System.out.println(list);
ArrayList newList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
Student student = (Student)next;
if (!newList.contains(student)) {
newList.add(student);
}
}
for (Object object : newList) {
Student student = (Student)object;
System.out.println(student);
}
}
