编写程序,满足如下需求:
建立"gbk"编码文件“users.text”内容如下,存储了各人员各年龄的工资信息。
----------------------
姓名 年龄 工资
张飞-18-5000
熊大-20-15000
关羽-20-20000
赵云-19-6000
诸葛亮-19-30000
----------------------
利用list,set,map容器解决下面需求
1)建立类Person,用其对象来描述某人某年龄的工资信息。
2)把文件里每一行的信息存储在Person对象中,把文件所有行数据存储在Map<String,Person>容器中。
键:人的名字;值:人对应的Perosn对象。
3)把map容器里所有人的年龄取出来放入list或set年龄容器中,再遍历年龄容器打印所有年龄,要求年龄不能重复。
建立"gbk"编码文件“users.text”内容如下,存储了各人员各年龄的工资信息。
----------------------
姓名 年龄 工资
张飞-18-5000
熊大-20-15000
关羽-20-20000
赵云-19-6000
诸葛亮-19-30000
----------------------
利用list,set,map容器解决下面需求
1)建立类Person,用其对象来描述某人某年龄的工资信息。
2)把文件里每一行的信息存储在Person对象中,把文件所有行数据存储在Map<String,Person>容器中。
键:人的名字;值:人对应的Perosn对象。
3)把map容器里所有人的年龄取出来放入list或set年龄容器中,再遍历年龄容器打印所有年龄,要求年龄不能重复。
4)把map容器里所有人的工资取出来放入list或set工资容器中,把工资升序排列。再遍历打印所有工资。
public class Test8 {
public static void main(String[] args) {
Map<String, Person> map1= dome2();
dome3(map1);
dome4(map1);
}
private static void dome4(Map<String, Person> map) {
List<Integer> sals=new ArrayList<Integer>();
for (Person curPerson : map.values()) {
sals.add(curPerson.sal);
}
Collections.sort(sals);
System.out.println("排序后:"+sals);
}
private static void dome3(Map<String, Person> map) {
Set<Integer> ages=new HashSet<Integer>();
for (Person curPerson : map.values()) {
ages.add(curPerson.age);
}
System.out.println("set内容:"+ages);
}
//2
private static Map<String, Person> dome2() {
File file=new File("src/exam/users.text");
BufferedReader br=null;
try {
br=new BufferedReader(new InputStreamReader(
new FileInputStream(file), "gbk"));
String buff;
Map<String,Person> map=new HashMap<String, Person>();
while ((buff=br.readLine())!=null) {
if(buff.contains("-")){
String[] perArr= buff.split("-");
int age=Integer.parseInt(perArr[1].trim());
int sal=Integer.parseInt(perArr[2].trim());
Person p=new Person(perArr[0],age, sal);
map.put(p.name,p);
}
}
System.out.println(map);
return map;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(br!=null){
br.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
return null;
}
}
class Person{
String name;
int age;
int sal;
public Person(String name, int age, int sal) {
super();
this.name = name;
this.age = age;
this.sal = sal;
}
@Override
public String toString() {
return "\n Person [name=" + name + ", age=" + age + ", sal=" + sal + "]";
}
}