【问题标题】:Can i have shorten this program我可以缩短这个程序吗
【发布时间】:2020-11-05 20:00:44
【问题描述】:

我不喜欢在运行时动态地给 arraylist 值。但我需要 ArrayList 和 hashTable 的循环,以缩短程序。

public class HashTable2 
{

    public static void main(String[] args)
    {
        Hashtable<Integer, ArrayList<String>> hasTable1 = new Hashtable<Integer, ArrayList<String>>();
        
        ArrayList<String> arrList1 = new ArrayList<String>();
        ArrayList<String> arrList2 = new ArrayList<String>();
        ArrayList<String> arrList3 = new ArrayList<String>();
        ArrayList<String> arrList4 = new ArrayList<String>();
        ArrayList<String> arrList5 = new ArrayList<String>();
        ArrayList<String> arrList6 = new ArrayList<String>();

        arrList1.add("MasoodAzar, 10000, Finance");
        arrList2.add("Abu Bakr, 20000, Logistics");
        arrList3.add("MuhammedRasul, 5000, Sales");
        arrList4.add("SubhanQuershi, 2500, Sales");
        arrList5.add("Hafiz Saeed, 25000, Purchase");
        arrList6.add("Shekau, 14500, Purchase");

        hasTable1.put(251, arrList1);
        hasTable1.put(355, arrList2);
        hasTable1.put(754, arrList3);
        hasTable1.put(384, arrList4);
        hasTable1.put(463, arrList5);
        hasTable1.put(835, arrList6);

        System.out.println(hasTable1);
    }
}

【问题讨论】:

  • ...你为什么使用 ArrayLists?
  • 你为什么用Hashtable而不是HashMap
  • ArrayList 用于将员工详细信息存储到特定键,我需要根据某些条件获取值。例如我需要查找工资在 7500 以上的员工
  • @SelvaSPM 每个arraylist只包含一个String,没有意义
  • 为什么你有 6 个 ArrayList,每个都有一个元素?您可以使用 HashMap.

标签: java loops arraylist hashmap


【解决方案1】:

您可以编写一个函数来抽象出重复的代码:

void addEmployee(Hashtable hashTable, int id, String employeeDetails) {
  ArrayList<String> employees = new ArrayList<>();
  employees.add(employeeDetails);
  hashTable.put(id, employees);
}

你应该使用 HashMap 而不是 Hashtable -- Hashtable 是同步的,这里不需要。

您可能还应该用一个类来表示员工,并为其属性提供可访问的字段。

【讨论】:

  • 非常感谢 tgdavies 的帮助!
猜你喜欢
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
相关资源
最近更新 更多