問題: ArrayList 中添加物件,列印出來是地址值,無法顯示正常可讀內容,
解決辦法:
- 重寫 toString 方法,迭代
- for回圈遍歷
實體 :
1. 創建一個List,在List 中增加三個工人,基本資訊如下表:
2. 在li4 之前插入一個工人,資訊為:姓名:zhao6,年齡:24,工資3300
3. 洗掉wang5 的資訊
4. 利用for 回圈遍歷,列印List 中所有工人的資訊
| 姓名 | 年齡 | 工資 |
|---|---|---|
| zhang3 | 18 | 3000 |
| li4 | 25 | 3500 |
| wang5 | 22 | 3200 |
- 先定義一個 Worker 類 :
public class Worker {
// 宣告私有變數
private String name;
private int age;
private double salary;
// 無參構造方法
public Worker() {
}
// 有參構造方法
public Worker(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void work() {
System.out.println(name + "work");
}
// 重寫toString方法
@Override
public String toString() {
return "Worker [age=" + age + ", name=" + name + ", salary=" + salary + "]";
}
}
- 創建測驗類WorkerTest:
public class WorkerTest {
public static void main(String[] args) {
List<Worker> list = new ArrayList<Worker>();
list.add(new Worker("zhang3", 18,3000));
list.add(new Worker("li4",25,3500));
list.add(new Worker("wang5",22,3200));
// 在li4前添加新員工:li4索引為1
list.add(1,new Worker("zhao6",24,3300));
// 移除wang5,索引值為3:
list.remove(3);
// 1. 直接遍歷:
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 2. 迭代器方法:
System.out.println("迭代器方式:");
Iterator<Worker> it = list.iterator();
while(it.hasNext()){
Worker p = it.next();
System.out.println(p.toString());
}
}
}
輸出結果:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229844.html
標籤:java
上一篇:Java 進階:集合框架2

