java里面map集合的插入_java集合练习:创建Map集合,创建Emp对象,并将创建的Emp对象添加到集合中...

package com.jihe;

public class Emp {

private String e_id;

private String e_name;

public Emp(String e_id, String e_name) {

super();

this.e_id = e_id;

this.e_name = e_name;

}

public String getE_id() {

return e_id;

}

public void setE_id(String e_id) {

this.e_id = e_id;

}

public String getE_name() {

return e_name;

}

public void setE_name(String e_name) {

this.e_name = e_name;

}

}

package com.jihe;

import java.util.*;

public class EmpMap {

public static void main(String[] args) {

Map map=new HashMap();

Emp emp=new Emp("001","张三");

Emp emp1=new Emp("005","李四");

Emp emp2=new Emp("003","王五");

Emp emp3=new Emp("008","赵六");

map.put(emp.getE_id(), emp.getE_name());

map.put(emp1.getE_id(), emp1.getE_name());

map.put(emp2.getE_id(), emp2.getE_name());

map.put(emp3.getE_id(), emp3.getE_name());

Set keys=map.keySet();

System.out.println("遍历集合map:");

Iterator it=keys.iterator();

while(it.hasNext())

{

String key=it.next();

System.out.println(key+" "+map.get(key));

}

System.out.println("移除的是"+map.remove("005"));

Maptreemap=new TreeMap();

treemap.putAll(map);

Set set=treemap.keySet();

System.out.println("遍历集合treemap:");

Iterator ss=set.iterator();

while(ss.hasNext())

{

String str=ss.next();

System.out.println(str+" "+treemap.get(str));

}

}

}

来源:https://www.cnblogs.com/wallan/p/5541853.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是实现你提出的需求的示例代码: ```cpp #include <iostream> #include <fstream> #include <vector> #include <map> #include <algorithm> #include <random> #include <ctime> using namespace std; // 定义Emp类 class Emp { public: Emp(string name, int age, char gender, string school) : name(name), age(age), gender(gender), school(school) {} string getName() const { return name; } int getAge() const { return age; } char getGender() const { return gender; } string getSchool() const { return school; } private: string name; int age; char gender; string school; }; // 生成以A-Z字母开头的随机名字 string generateName() { static default_random_engine e(time(nullptr)); static uniform_int_distribution<unsigned> u(0, 25); static uniform_int_distribution<unsigned> v(0, 999); char c = 'A' + u(e); int n = v(e); return string(1, c) + to_string(n); } // 生成15-30的随机年龄 int generateAge() { static default_random_engine e(time(nullptr)); static uniform_int_distribution<unsigned> u(15, 30); return u(e); } // 生成随机性别 char generateGender() { static default_random_engine e(time(nullptr)); static uniform_int_distribution<unsigned> u(0, 1); return u(e) == 0 ? 'M' : 'F'; } // 生成随机学校 string generateSchool() { static default_random_engine e(time(nullptr)); static vector<string> schools = {"MIT", "Stanford", "Harvard", "Caltech", "Princeton"}; static uniform_int_distribution<unsigned> u(0, schools.size() - 1); return schools[u(e)]; } // 生成Emp对象 Emp generateEmp() { string name = generateName(); int age = generateAge(); char gender = generateGender(); string school = generateSchool(); return Emp(name, age, gender, school); } // 将Emp对象写入文件 void writeEmpToFile(const Emp& emp, ofstream& ofs) { ofs << emp.getName() << "," << emp.getAge() << "," << emp.getGender() << "," << emp.getSchool() << endl; } // 将Emp对象读入容器 void readEmpFromFile(vector<Emp>& emps, ifstream& ifs) { string line; while (getline(ifs, line)) { size_t pos1 = line.find(","); string name = line.substr(0, pos1); size_t pos2 = line.find(",", pos1 + 1); int age = stoi(line.substr(pos1 + 1, pos2 - pos1 - 1)); char gender = line[pos2 + 1]; string school = line.substr(pos2 + 3); emps.push_back(Emp(name, age, gender, school)); } } int main() { // 生成Emp对象并写入文件 ofstream ofs("emp.txt"); for (int i = 0; i < 300; ++i) { Emp emp = generateEmp(); writeEmpToFile(emp, ofs); } ofs.close(); // 从文件读取Emp对象并存入vector容器 vector<Emp> emps; ifstream ifs("emp.txt"); readEmpFromFile(emps, ifs); ifs.close(); // 将Emp对象存入以名字为key、Emp对象为value的map map<string, Emp> empMap; for (const auto& emp : emps) { empMap[emp.getName()] = emp; } // 按照年龄对Emp对象进行排序 sort(emps.begin(), emps.end(), [](const Emp& emp1, const Emp& emp2) { return emp1.getAge() < emp2.getAge(); }); // 输出排序结果 for (const auto& emp : emps) { cout << emp.getName() << ", " << emp.getAge() << ", " << emp.getGender() << ", " << emp.getSchool() << endl; } return 0; } ``` 上述代码,我们定义了Emp类,用于存储一个人的姓名、年龄、性别和毕业学校。然后编写了生成随机Emp对象的函数,以及将Emp对象写入文件和从文件读取Emp对象的函数。接着在main函数,我们生成了300个随机Emp对象,并将它们存入文件。然后将文件Emp对象读入vector容器,并将它们存入以名字为key、Emp对象为value的map。最后按照年龄对Emp对象进行排序,并输出排序结果。 你可以根据自己的需要修改这段代码,比如修改生成随机Emp对象的方式,或者修改文件的读写方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值