List结构的集合基础(二)LinkedList类

前提:

引入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

优点:

  1. 跟ArrayList一样可以灵活的增删改查,不需要跟数组一样规定个数限制。
  2. 在ArrayList基础上增加了对头和尾元素的操作。


LinkedList是顺序结构,适合用顺序结构的遍历方法,即迭代器或者是foreach。

浅析foreach结构:点击打开链接

浅析Java中的迭代器:点击打开链接


欢迎各位在评论区留言讨论~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值