我想存储Employee_id (int)
,Employee_name (String)
&集合中的Employee_Salary(long)
。其中Employee_id
应该始终是唯一的&按升序排序。 Employee_names
可以重复。
请建议我可以使用哪些Java-Collection&这个基本程序将如何?
提前致谢。
答案 0 :(得分:1)
使用TreeMap这是一个例子:
<强> JAVA 强>
import java.util.TreeMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
...
/* This is how to declare TreeMap */
TreeMap<Integer, String> tmap =
new TreeMap<Integer, String>();
/*Adding elements to TreeMap*/
tmap.put(1, "Data1");
tmap.put(23, "Data2");
tmap.put(70, "Data3");
tmap.put(4, "Data4");
tmap.put(2, "Data5");
/* Display content using Iterator*/
Set set = tmap.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Map.Entry mentry = (Map.Entry)iterator.next();
System.out.print("key is: "+ mentry.getKey() + " & Value is: ");
System.out.println(mentry.getValue());
}
您还可以使用HashMap(未应用排序)
答案 1 :(得分:0)
我会使用HashMap存储非重复的Employee_id。 您需要两个HashMap来存储以下内容: Employee_id,Employee_Name,Employee_Salary
//this will hold the id and name
HashMap<Integer, String> employeeHM = new HashMap<>();
//this will hold the id of employeeHM's HashMap and the salary
HashMap<Integer, Long> salaryHM = new HashMap<>();
就像@ThatAwesomeCoder所说,HashMap缺乏排序。您可以通过创建一个循环来解决这个问题,该循环读取employeeHM中的所有id并使用sort函数将其排序为ArrayList集合。
答案 2 :(得分:0)
如果您需要将员工数据存储为键值对,则可以将TreeMap与EmployeeID一起用作唯一键。如果你需要以集合的形式存储它,那么如何使用Treeset的覆盖构造函数来接受比较器?在比较器内部,您可以指定比较逻辑。只是我的两分钱..