要存储员工详细信息,以下要求可以使用哪个collection_type?

时间:2017-05-23 05:14:16

标签: java collections

我想存储Employee_id (int)Employee_name (String)&集合中的Employee_Salary(long)。其中Employee_id应该始终是唯一的&按升序排序。 Employee_names可以重复。 请建议我可以使用哪些Java-Collection&这个基本程序将如何?

提前致谢。

3 个答案:

答案 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的覆盖构造函数来接受比较器?在比较器内部,您可以指定比较逻辑。只是我的两分钱..