List Map互相转换习题1
5、实现List和Map数据的转换。具体要求如下:
功能1:定义方法public void listToMap( ){ }将List中Student元素封装到Map中
1)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息并加入List
2)遍历List,输出每个Student信息
3)将List中数据放入Map,使用Student的id属性作为key,使用Student对象信息作为value
4)遍历Map,输出每个Entry的key和value
功能2:定义方法public void mapToList( ){ }将Map中Student映射信息封装到List
1)创建实体类StudentEntry,可以存储Map中每个Entry的信息
2)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息,并使用Student的id属性作为key,存 入Map
3)创建List对象,每个元素类型是StudentEntry
4)将Map中每个Entry信息放入List对象
功能1:先完成Student类
package xx
/**
* @author tutusang
*/
public class Student {
// Student(int id,String name,int age,String sex )
private int id;
private String name;
private int age ;
private String sex;
public Student () {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
public Student(int id, String name, int age, String sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
}
完成public void listToMap( ){ }方法
package xx
/**
* @author tutusang
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class ListtoMap {
private Student stu ;
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
public ListtoMap() {}
public void listToMap(){
List<Student> l1 = new ArrayList<Student>();
for (int i = 0;; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生信息:编号,姓名,年龄,性别。输入exit退出");
String regex = "\\w+,\\w{2,4},\\d{1,3},\\w+";
String in = sc.next();
if(in.equals("exit")) {
break;
}else if(in.matches(regex)) {
System.out.println("输入信息正确,是否继续输入?");
String []x = in.split(",");
int id = Integer.parseInt(x[0]);
int age = Integer.parseInt(x[2]);
Student a = new Student(id, x[1], age, x[3]);
l1.add(a);
}else {
System.out.println("输入信息有误,请重新输入:");
}
}
Map<Integer, Student> map = new HashMap<Integer,Student>();
Iterator<Student> it = l1.iterator();
while (it.hasNext()) {
Student stu1 = (Student)it.next();
System.out.println(stu1);
map.put(stu1.getId(), stu1);
}
Set<Integer> s1 = map.keySet();
for (int i :s1) {
System.out.println("编号:\t"+i+"\t"+map.get(i));
}
}
}
功能2:先创建StudentEntry类
package xx
/**
* @author tutusang
*/
public class StudenEntry {
private int key;
private Student stu;
public StudenEntry() {}
public int getKey() {
return key;
}
public void setKey(int key) {
this.key = key;
}
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
public StudenEntry(int key, Student stu) {
super();
this.key = key;
this.stu = stu;
}
}
再编写public void mapToList( ){ }
package xx
/**
* @author tutusang
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapToList {
private Student stu ;
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
public MapToList() {}
public void mapToList( ){
Map<Integer,Student> map = new HashMap<>();
for (int i = 0;; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生信息:编号,姓名,年龄,性别。输入exit退出");
String regex = "\\w+,\\w{2,4},\\d{1,3},\\w+";
String in = sc.next();
if(in.equals("exit")) {
break;
}else if(in.matches(regex)) {
System.out.println("输入信息正确,是否继续输入?");
String []x = in.split(",");
int id = Integer.parseInt(x[0]);
int age = Integer.parseInt(x[2]);
Student a = new Student(id, x[1], age, x[3]);
map.put(id, a);
}else {
System.out.println("输入信息有误,请重新输入:");
}
}
Set<Entry<Integer,Student>> entrySet = map.entrySet();
List<StudenEntry> list = new ArrayList<StudenEntry>();
for (Entry<Integer, Student> entry : map.entrySet()){
StudenEntry studentEntry = new StudenEntry();
studentEntry.setKey(entry.getKey());
studentEntry.setStu(entry.getValue());
list.add(studentEntry);
}
Iterator<StudenEntry> it = list.iterator();
while (it.hasNext()){
StudenEntry s2 = it.next();
System.out.println(s2.getStu());
}
}
}
之后测试,就可以执行了。
public class Test {
public static void main(String[] args) {
ListtoMap a = new ListtoMap();
a.listToMap();
MapToList b = new MapToList();
b.mapToList();
}
}