黑马程序员技术交流社区
标题:
ArrayList练习,话说这个练习含金量略高,准备多敲几遍.
[打印本页]
作者:
noiary
时间:
2014-9-21 22:44
标题:
ArrayList练习,话说这个练习含金量略高,准备多敲几遍.
import java.util.*;
/* 练习: 将自定义对象作为元素存到ArrayList集合中,并去除重复元素.
思路:
1,对人描述,将数据封装进人对象;
2,定义容器,将人存入;
3,取出.
*/
class ArrayListTest2 {
public static void main(String[] args) {
ArrayList al = new ArrayList();
//al.add(new Test());
al.add(new Person("lisi01",30));
al.add(new Person("lisi02",32));
al.add(new Person("lisi02",32));
al.add(new Person("lisi03",33));
al.add(new Person("lisi04",34));
al.add(new Person("lisi05",35));
sop("remove 03: " + al.remove(new Person("lisi03",33)));
sop(al);
al = singleElement(al);
for(Iterator it = al.iterator(); it.hasNext(); ) {
Person p = (Person)it.next();
sop(p.getName()+"::"+p.getAge());
}
}
private static ArrayList singleElement(ArrayList al) {
ArrayList newAl = new ArrayList();
for(Iterator it = al.iterator(); 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);
}
}
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;
}
}
复制代码
作者:
wawsc5354524
时间:
2014-9-21 22:59
好吧,多多练习
作者:
T-l-H、小生
时间:
2014-9-21 23:04
面试题。有过。。。。
作者:
noiary
时间:
2014-9-21 23:24
T-l-H、小生 发表于 2014-9-21 23:04
面试题。有过。。。。
还真的被说中啦...
作者:
T-l-H、小生
时间:
2014-9-22 01:15
noiary 发表于 2014-9-21 23:24
还真的被说中啦...
呵呵,因为我亲眼见过我朋友面试啊。。。
作者:
郑飞
时间:
2014-9-22 01:56
集合里好些这样的题 加油
作者:
言钟钟
时间:
2014-9-22 08:08
收藏啊! 我也要敲下!
作者:
happyto1021
时间:
2014-9-22 08:34
马克。。。
作者:
noiary
时间:
2014-9-22 13:52
第二遍
import java.util.*;
/* 练习: 将自定义对象作为元素存到ArrayList集合中,并去除重复元素.
思路:
1,对人描述,将数据封装进人对象;
2,定义容器,将人存入;
3,取出.
*/
public class ArrayListTest {
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add(new Person("Shawn01",31));
al.add(new Person("Shawn02",32));
al.add(new Person("Shawn02",32));
al.add(new Person("Shawn03",33));
al.add(new Person("Shawn04",34));
al.add(new Person("Shawn04",34));
al.add(new Person("Shawn05",35));
al = singleElement(al);
for(Iterator it = al.iterator(); it.hasNext(); ) {
Person p = (Person)it.next();//避免iterator指针跳跃,同时强转Object为Person
System.out.println("name=" + p.getName() + ", age=" + p.getAge());
}
}
private static ArrayList singleElement(ArrayList al) {
ArrayList newAl = new ArrayList();
for(Iterator it = al.iterator(); it.hasNext(); ) {
Object o = it.next();
if(!newAl.contains(o)) {
newAl.add(o);
}
}
return newAl;
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
/*
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
*/
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean equals(Object obj) {
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
return name.equals(p.name) && this.age == p.age;
}
}
复制代码
作者:
王路强
时间:
2014-9-22 14:20
加油!!!!!1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2