首页 > 解决方案 > 我可以缩短这个程序吗

问题描述

我不喜欢在运行时动态地给出 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);
    }
}

标签: javaloopsarraylisthashmap

解决方案


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

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

您应该使用 HashMap 而不是 Hashtable - Hashtable 是同步的,这在此处不是必需的。

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


推荐阅读