如何打印单向链表(SLL)中存储的BirthdayCalc对象的指定属性
实现方法
前提准备
首先你需要保证BirthdayCalc类提供对应字段的公开getter方法,否则无法直接访问类内的私有字段,示例代码如下:
public class BirthdayCalc { // 已有字段、构造方法等保持不变 private int month; private int day; private int year; private String birthdayStr; // 新增以下getter方法 public int getMonth() { return month; } public int getDay() { return day; } public int getYear() { return year; } public String getBirthdayStr() { return birthdayStr; } }
场景1:使用Java标准库LinkedList<BirthdayCalc>作为SLL实现
批量打印所有节点的指定字段
直接用增强for循环遍历即可:
for (BirthdayCalc item : list) { System.out.println("年:" + item.getYear()); System.out.println("月:" + item.getMonth()); System.out.println("日:" + item.getDay()); System.out.println("生日字符串:" + item.getBirthdayStr()); System.out.println("-------------------"); }
每次新增节点后打印当前节点内容
直接在addLast逻辑后追加打印代码即可,不需要遍历整个链表:
BirthdayCalc object = new BirthdayCalc(month, day, year, result, birthdayStr); list.addLast(object); // 直接打印刚新增的对象字段 System.out.println("新增节点内容:"); System.out.println("年:" + object.getYear()); System.out.println("月:" + object.getMonth()); System.out.println("日:" + object.getDay()); System.out.println("生日字符串:" + object.getBirthdayStr());
场景2:使用自定义实现的单向链表SLL
你需要先确保自定义SLL提供了获取头节点、节点可通过next指针访问后继节点的能力,遍历打印代码示例:
// 假设自定义SLL的节点类为Node,data属性存储BirthdayCalc对象,next属性指向后继节点 Node current = list.getHead(); while (current != null) { BirthdayCalc item = current.data; System.out.println("年:" + item.getYear()); System.out.println("月:" + item.getMonth()); System.out.println("日:" + item.getDay()); System.out.println("生日字符串:" + item.getBirthdayStr()); System.out.println("-------------------"); current = current.next; }
内容的提问来源于stack exchange,提问作者Diante Page
相关产品推荐
相关产品推荐

