前提:
引入java.util包
语法结构:
相比较ArrayList集合类,LinkedList更加灵活,在它基础上新增了头和尾的操作,比如从开头增加,从开头删除等等
创建LinkedList类:
LinkedList <类型> 集合名=new LinkedList <>();
集合元素的加入(常用):
集合名.add(对象名); //顺序添加
集合名.addFirst(对象名);//添加到开头
集合名.addLast(对象名); //添加到结尾,其实与第一个效果相同
集合的遍历(举例),用于改和查:
for(int i=0;i<list.size();i++)
{
Clerk temp=(Clerk)list.get(i); //在get方法中增加了getFirst和getLast方法
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
集合元素的删除:
list.remove(int index); //按下表删除
list.remove(Object o); //按对象删除
list.removeFirst(); //删除第一个元素
list.removeLast(); //删除最后一个元素
代码实现:
import java.util.*; //导包
public class Test1 {
public static void main(String[] args)
{
LinkedList <Clerk> list=new LinkedList <>(); //创建链式的表
Clerk clerk1=new Clerk("周卫国",32,5000); //创建三个对象
Clerk clerk2=new Clerk("方天翼",28,8000);
Clerk clerk3=new Clerk("张小凡",20,7000);
list.addFirst(clerk1); //添加三个对象
list.addFirst(clerk2);
list.addFirst(clerk3);
for(int i=0;i<list.size();i++) //集合的遍历
{
Clerk temp=(Clerk)list.get(i); //用一个暂时变量来承载下标为i的对象的数据
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
System.out.println();
list.removeFirst(); //删除首个元素
for(int i=0;i<list.size();i++)
{
Clerk temp=list.get(i); //输出信息
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
System.out.println();
for(int i=0;i<list.size();i++)
{
Clerk temp=list.get(i);
if(temp.getName().equals("周卫国")) //找到名字为周卫国的对象
temp.setSalary(10000); //重设他的薪资
}
for(int i=0;i<list.size();i++)
{
Clerk temp=list.get(i); //输出信息
System.out.println(temp.getName()+" "+temp.getAge()+" "+temp.getSalary());
}
}
}
class Clerk //定义员工类
{
private String name;
private int age;
private double salary;
Clerk(String name,int age,double salary)
{
this.name=name;
this.age=age;
this.salary=salary;
}
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;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
结果显示:
张小凡 20 7000.0
方天翼 28 8000.0
周卫国 32 5000.0
方天翼 28 8000.0
周卫国 32 5000.0
方天翼 28 8000.0
周卫国 32 10000.0
优点:
- 跟ArrayList一样可以灵活的增删改查,不需要跟数组一样规定个数限制。
- 在ArrayList基础上增加了对头和尾元素的操作。
LinkedList是顺序结构,适合用顺序结构的遍历方法,即迭代器或者是foreach。
浅析foreach结构:点击打开链接
浅析Java中的迭代器:点击打开链接
欢迎各位在评论区留言讨论~~