如何将链表写入文件java_如何从文件中读取并在链表(Java)中存储信息?

这篇博客介绍了如何使用Java将链表中的手机信息写入文件,以及如何从文件中读取这些信息并存储到链表中。文章展示了`CellPhone`类的定义,包含手机的序列号、品牌、年份和价格属性。接着,通过`ListPractice`类的`processFile`方法,演示了从文件读取数据创建`CellPhone`对象并添加到链表的过程,同时避免了重复数据的添加。
摘要由CSDN通过智能技术生成

为了避免重复,你也可以简单地在上面乱翻。

申报

手机

这样地

public class CellPhone {

private Long serialNumber;

private String brand;

private Integer year;

private Double price;

CellPhone(Long serialNumber, String brand, int year, double price) {

this.serialNumber = serialNumber;

this.brand = brand;

this.year = year;

this.price = price;

}

public Long getSerialNumber() {

return serialNumber;

}

public void setSerialNumber(Long serialNumber) {

this.serialNumber = serialNumber;

}

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = brand;

}

public Integer getYear() {

return year;

}

public void setYear(Integer year) {

this.year = year;

}

public Double getPrice() {

return price;

}

public void setPrice(Double price) {

this.price = price;

}

@Override

public int hashCode() {

return serialNumber.hashCode();

}

@Override

public boolean equals(Object obj) {

if (!(obj instanceof CellPhone))

return false;

CellPhone mdc = (CellPhone) obj;

return mdc.serialNumber.equals(serialNumber);

}

}

然后你的班级需要这样修改

public class ListPractice {

public static void main(String[] args) throws IOException {

//Creating BufferedReader object to read the input text file

Scanner scanner = new Scanner(new File("E:\\Projects\\JavaBasics\\src\\data.txt"));

LinkedList cellPhones = new LinkedList<>();

processFile(scanner, cellPhones);

Iterator i = cellPhones.iterator();

while (i.hasNext()) {

CellPhone phone = (CellPhone) i.next();

System.out.println(phone.getSerialNumber());

}

}

public static void processFile(Scanner sc1, LinkedList cl1) {

String S = null;

while (sc1.hasNext()) {

S = sc1.next();

Long serialNum = Long.parseLong(S.trim());

S = sc1.next();

String brand = S.trim();

S = sc1.next();

double price = Double.parseDouble(S.trim());

S = sc1.next();

int year = Integer.parseInt(S.trim());

CellPhone c1 = new CellPhone(serialNum, brand, year, price);

if (!cl1.contains(c1))

cl1.add(c1);

// else System.out.println("Duplicate data");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值