为了避免重复,你也可以简单地在上面乱翻。
申报
手机
这样地
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");
}
}
}