集合 作业
设计一个User类,保护三个基本私有属性 : String id; String name;String gender;以及三个属性的setter与getter方法,重新类的toStrng方法,toString方法输出对象的属性。
使用for循环创建 50个User对象,创建用户对象时,使用 “emp”+r.nextInt(100) 产生用户的id,gender和name随意,分别把用户存入到 ArrayList ,HashSet,以及map中,要求id作为用户的唯一性标识存入到集合中(即同一个集合和map中不能存在相同id的用户)
分别使用 迭代器 和for循环机增强for循环,输出集合中用户的属性信息。
(注:r 时一个 Random类的实例)
这是模仿的前辈的作业
观摩前辈的作业,然后自己慢慢琢磨,有些许删改
建立User类
package theme_6;
import java.util.Objects;
public class User {
private String id;
private String name;
private String gender;
public User(String id, String name, String gender) {
// TODO Auto-generated constructor stub
super();
this.id = id;
this.name = name;
this.gender = gender;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", gender=" + gender + "]";
}
@Override
public int hashCode() {
return Objects.hash(gender, id, name);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
return Objects.equals(gender, other.gender) && Objects.equals(id, other.id) && Objects.equals(name, other.name);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
建立UserTest类
package theme_6;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
public class UserTest {
public static void main(String[] args) {
Random r = new Random();//建立一个随机数
User[] myUser = new User[50];//建立一个数组
List myArrayList = new ArrayList<>();//建立三种列表
Set myHashSet = new HashSet<>();
Map myHashMap = new HashMap<>();
for(int i=0; i<50; i++) {//录入数据到三种列表中
myUser[i] = new User("emp"+r.nextInt(100), "HL_WEI", "man");
myArrayList.add(myUser[i]);
myHashSet.add(myUser[i]);
myHashMap.put(myUser[i].getId(), myUser[i]);
}
System.out.println("for循环myArrayList:");
for(int i=0; i<50; i++) {
System.out.println(myArrayList.get(i));//get(i)是输出表格中第几个toString
}
System.out.println("结束");
System.out.println("迭代器myArrayList:");
Iterator it1 = myArrayList.iterator();//建立一个迭代器
while(it1.hasNext()) {//如果有下一个元素,就输出
User myuser = (User)it1.next();//强制转化下一个元素为User类型
System.out.println(myuser);
}
System.out.println("结束");
System.out.println("遍历myHashSet");
Iterator it2 = myHashSet.iterator();
while(it2.hasNext()) {
User myuser = (User)it2.next();
System.out.println(myuser);
}
System.out.println("结束");
System.out.println("遍历myHashMap");
Set key = myHashMap.keySet();//建立一个key
Iterator it3 = key.iterator();//从key中引用出迭代器
while(it3.hasNext()) {//HashMap的要有id,下一个元素先是id
String myid = (String)it3.next();//这里先强制转化下个元素(id)为String类型
User myuser = (User)myHashMap.get(myid);//get到id即get到用户的数据,即User数组中的对应id的那一个
System.out.println(myuser);
}
System.out.println("结束");
}
}
Ps:我这是拙劣的“抄袭”,大家别模仿,完成学校的作业罢了



