集合框架之ArrayList存入物件的練習
阿新 • • 發佈:2018-12-19
package myclass; import java.util.; / 將自定義物件作為元素存到ArrayList集合中,並去除重複元素。 比如:存人物件,同姓名同年齡,視為同一個人,為重複元素
思路: 1.對人描述,將資料封裝進人物件中 2.定義容器,將人存入 3.取出來
List 集合判斷元素是否相同,依據的事equals()方法。(contains()he remove()) */
class Person { private String name; private int age; Person(String name,int age )//一初始化姓名和年齡就全來了 { this.name
class ArrayListTest2 { public static void main(String[] args) { ArrayList al = new ArrayList();//判斷物件是否相同equals()方法比較地址值 al.add(new Person(“lisi”,30)); // al.add(Object obj) = new Person(); al.add(new Person(“lisi1”,31)); al.add(new Person(“lisi1”,31)); al.add(new Person(“lisi2”,32)); al.add(new Person(“lisi3”,33));
// sop(al);//這裡打印出來的是地址值。
al = singleElement(al);
//Iterator就已經將陣列中的元素取出並且列印。
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();//it.next()返回值是Object型別。需要進行強制轉換 1.
Person p = (Person)obj;
sop(p.getName()+ "::" + p.getAge());
//sop(it.hanNext().getName()+ "::" + it.hasNext().getAge());//不能用
}
}
public static ArrayList singleElement(ArrayList al)
{
ArrayList nAl = new ArrayList();
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!nAl.contains(obj))//呼叫contains 然後contains在底層呼叫equals
nAl.add(obj);
}
return nAl;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}