LinkedList是一个有序的集合对象,底层是由双向链表实现,增删快,查询比较慢。
增加:
add(E e):在链表后添加一个元素; 通用方法
addFirst(E e):在链表头部插入一个元素; 特有方法
addLast(E e):在链表尾部添加一个元素; 特有方法
push(E e):与addFirst方法一致
offer(E e):在链表尾部插入一个元素
add(int index, E element):在指定位置插入一个元。
offerFirst(E e):JDK1.6版本之后,在头部添加; 特有方法
offerLast(E e):JDK1.6版本之后,在尾部添加; 特有方法
删除:
remove() :移除链表中第一个元素; 通用方法
remove(E e):移除指定元素; 通用方法
removeFirst(E e):删除头,获取元素并删除; 特有方法
removeLast(E e):删除尾; 特有方法
pollFirst():删除头; 特有方法
pollLast():删除尾; 特有方法
pop():和removeFirst方法一致,删除头。
poll():查询并移除第一个元素 特有方法
查:
get(int index):按照下标获取元素; 通用方法
getFirst():获取第一个元素; 特有方法
getLast():获取最后一个元素; 特有方法
peek():获取第一个元素,但是不移除; 特有方法
peekFirst():获取第一个元素,但是不移除;
peekLast():获取最后一个元素,但是不移除;
pollFirst():查询并删除头; 特有方法
pollLast():删除尾; 特有方法
poll():查询并移除第一个元素 特有方法
————————————————
以上内容版权声明:本文为CSDN博主「yyyyyhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/huyang0304/article/details/82389595
一、构造函数类(Student.java)
package Z_LinkedList;
public class Student {
private int id; // 编号
private String name;// 姓名
private String old;// 年龄
public Student() {}
public Student(int id, String name, String old) {
this.id = id;
this.name = name;
this.old = old;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOld() {
return old;
}
public void setOld(String old) {
this.old = old;
}
}
二、主操作类(m_LinkedList.java)
package Z_LinkedList;
import java.util.*;
public class m_LinkedList {
public static void main(String[] args)
{
LinkedList m_student = new LinkedList(); // 建立一个空的LinkedList集合
Student student_1= new Student(1,"张三","15"); // 实例化Student类,并存入数据"
Student student_2= new Student(2,"李四","16");
Student student_3= new Student(3,"王五","16");
// --------- 添加(是追加,不是插入) add
m_student.add(student_1); // 把类存入数组LinkedList中
m_student.add(student_2);
m_student.add(student_3);
m_student.addFirst(new Student(0,"老大","18")); // 在第一条插入
m_student.addLast(new Student(4,"店小二","15")); // 在最后插入一行数据
System.out.println("学生信息的行数:"+m_student.size()); // 判断对象数组有几行
// ---------- 查询和遍历 for
for(int i=0;i<m_student.size();i++)
{
Student student = (Student)m_student.get(i);
System.out.println("第"+student.getId()+"行的学生信息的姓名:"+student.getName()+" 年龄:"+student.getOld());
}
// ------------ 获取第一条的值,获取最后一条的值
System.out.println("");
Student student1 = (Student)m_student.getFirst();
System.out.println("第一条的姓名是:"+student1.getName());
Student student2 = (Student)m_student.getLast();
System.out.println("最后一条的姓名是:"+student2.getName());
System.out.println("");
System.out.println("------删除后的显示结果-----");
m_student.removeFirst(); // 删除第一条
m_student.removeLast(); // 删除最后一条
System.out.println(m_student.contains(student_2)); // 【contains】判断是含否有对象,返回true
System.out.println(m_student.contains(new Student(3,"王五","18"))); // 【contains】判断是含否有对象,是指针对比,不是值对比,所以返回false
m_student.remove((student_2)); // 【remove】删除元素
for(int i=0;i<m_student.size();i++)
{
Student student = (Student)m_student.get(i);
System.out.println("第"+student.getId()+"行的学生信息的姓名:"+student.getName()+" 年龄:"+student.getOld());
}
}
}