|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/*思路1对人描述,将数据封装进人对象2定义容器,将人存入3取出*/import?java.util.*;
class?Person
{????????private?String?name;
????????private?int?age;
????????Person(String?name,int?age)
????????{
????????????????this.name=?name;
????????????????this.age=?age;
????????}
????????public?boolean?equals(Object?obj)
????????{
????????????????if(!(obj?instanceof?Person))
????????????????????????return?false;
?
????????????????Person?p=?(Person)obj;
????????????????return?this.name.equals(p.name)&&?this.age?==?p.age;
????????}
????????public?String?getName()
????????{
????????????????return?name;
????????}
????????public?int?getAge()
????????{
????????????????return?age;
????????}
}?
class?Test
{????????public?static?void?main(String[]?args)
????????{
????????????????ArrayList?al?=?new?ArrayList();
?
????????????????al.add(new?Person("lisi01",30));
????????????????al.add(new?Person("lisi02",35));
????????????????al.add(new?Person("lisi03",32));
????????????????al.add(new?Person("lisi02",35));
????????????????al.add(new?Person("lisi03",32));
????????????????al.add(new?Person("lisi04",31));
?
????????????????al=singleElement(al);
?
????????????????Iterator?it?=?al.iterator();
?
????????????????while?(it.hasNext())
????????????????{
????????????????????????Person?p?=?(Person)it.next();
????????????????????????sop(p.getName()+"---"+p.getAge());
????????????????}
????????}
?
????????public?static?ArrayList?singleElement(ArrayList?al)
????????{
????????????????//定义一个临时容器
????????????????ArrayList?newAl?=?new?ArrayList();
????????????????Iterator?it?=al.iterator();
?????????????????????????????????while?(it.hasNext())
????????????????{
????????????????????????Object?obj?=?it.next();
????????????????????????if?(!newAl.contains(obj))
????????????????????????????????newAl.add(obj);
????????????????}
????????????????return?newAl;
????????}
?
????????public?static?void?sop(Object?obj)
????????{
????????????????System.out.println(obj);
????????}
} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public?boolean?contains(Object?o)?{
????????return?indexOf(o)?>=?0;
????}
????public?int?indexOf(Object?o)?{
????????if?(o?==?null)?{
????????????for?(int?i?=?0;?i?<?size;?i++)
????????????????if?(elementData[i]==null)
????????????????????return?i;
????????}?else?{
????????????for?(int?i?=?0;?i?<?size;?i++)
????????????????if?(o.equals(elementData[i]))????//调用参数的equals方法
????????????????????return?i;
????????}
????????return?-1;
????}
|
ArrayList的contains方法,底层调用了equals方法。
原文:http://aijuans.iteye.com/blog/2162857