复习一下:
ArrayList在java哪一个包中?
ArrayList在java --> util包中
import java.util.ArrayList;
LinkedList
LinkedList: 可以在集合前面增加数据,也可以在后面增加数据,还可以在数据之间增加数据。
LinkedList 新增add
package goodStudy;
//ArrayList在java--> util包中
import java.util.ArrayList;
// LinkedList也在java--> util包中
import java.util.LinkedList;public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");System.out.println("数据:"+ list);}
}
LinkedList获取第0项的值getFirst和get
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");// 数据:第1项// 数据:第1项System.out.println("数据:"+ list.getFirst());System.out.println("数据:"+ list.get(0));}
}
LinkedList.addFirst()添加到最前面
addFirst: 用于在链表的开头(也就是第一个位置)插入一个指定的元素。这个操作会使得链表的大小增加1。
该方法没有返回值
LinkedList list = new LinkedList();
list.add("第1项");
// 会把它添加到最前面
list.addFirst("第xx项");
// 输出的是: [第xx项, 第1项]
System.out.println(list);
LinkedList.add()在指定位置新增一项
list.add("第1项");
list.add("今天在上班");
list.addFirst("第xx项");
list.add(1, "又新增了一项");
System.out.println(list);
输出来的是: [第xx项, 又新增了一项, 第1项, 今天在上班]
LinkedList.addLast()添加到最后面
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.addLast("最后一个严肃");list.add("嘿嘿");// 输出的值是: [第1项, 今天在上班, 最后一个严肃, 嘿嘿]System.out.println(list);}
}
LinkedList.get()获取指定位置的值
package goodStudy;
// LinkedList也在java--> util包中
import java.util.LinkedList;
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.addFirst("第xx项");list.add(1, "又新增了一项");// 输出的值是: 又新增了一项System.out.println(list.get(1));}
}
特殊for循环
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.addFirst("第xx项");list.add(1, "又新增了一项");for(Object obj:list){System.out.println("当前这一项:"+ obj);}}
}
修改数据 set
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.set(1, "马上要下班了");System.out.println("数据:"+ list);}
}
删除数据 remove("删除某一项"),成功返回true,失败返回false
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");Boolean flag = list.remove("今天在上班");// trueSystem.out.println("flag:"+ flag);// ["第1项"]System.out.println("数据:"+ list);}
}
删除第1项LinkedList.remove() 删除第1项,并返回删除的元素
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");// 删除第1项,并返回删除的元素System.out.println(list.remove());System.out.println(list);}
}
LinkedList.removeFirst() 删除第一个元素
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");// 删除第1项,并返回删除的元素System.out.println(list.removeFirst());System.out.println(list);}
}
LinkedList.removeLast() 删除最后一个元素
LinkedList.remove(2)删除下标为2的元素
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.add("第3项");// 删除下标为1的元素list.remove(1);// 输出的是 [第1项, 第3项]System.out.println(list);}
}
LinkedList.addAll(Collection) 将指定集合中的所有元素添加到链表的末尾。
addAll: 方法用于将指定集合中的所有元素添加到链表的末尾。
如果指定的集合为 null,则抛出 NullPointerException。
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");LinkedList newList = new LinkedList();newList.add("11");newList.add("22");newList.addAll(list);// 输出:[11, 22, 第1项, 今天在上班]System.out.println(newList);}
}
LinkedList.push()将元素添加到链表的头部
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.add("第3项");list.push("添加到头部");// 输出的值是:[添加到头部, 第1项, 今天在上班, 第3项]System.out.println(list);}
}
LinkedList.pop()从链表的头部移除元素并返回第一个元素
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.add("第3项");// 输出的值是: 第1项System.out.println(list.pop());// 输出的值是:[今天在上班, 第3项]System.out.println(list);}
}
LinkedList.size()获取链表长度
LinkedList.isEmpty()判断链表是否为空,如果是空,返回true;否则返回false
LinkedList.clear()清空链表,没有返回值
LinkedList.clear()清空链表
如果在调用 clear() 方法之前链表是空的,那么调用该方法后链表仍然为空,且不会发生任何异常
没有返回值
LinkedList.contains()判断链表中是否包含某元素,是的话返回true,否则返回false
public class goodStudy{public static void main(String[] args) {LinkedList list = new LinkedList();list.add("第1项");list.add("今天在上班");list.add("第3项");// 输出的值是:trueSystem.out.println(list.contains("今天在上班"));}
}
LinkedList.element()获取第一个元素
LinkedList.indexOf() 获取元素第一次出现的位置
LinkedList.lastIndexOf() 获取元素最后一次出现的位置
发现的一点规律
链表LinkedList 和 ArrayList很多方法都是一样的。