java - 数组列表的数组?

标签 java arraylist

这是摘自《破解编码面试》的代码。我不明白第 4 行和第 5 行。从我所看到的来看,它是 arraylist 的 arraylist,但对它的定义方式有点困惑。请解释一下这些行中实际发生了什么。

1 public class CallHandler {

2 static final int LEVELS = 3; // we have 3 levels of employees

3 static final int NUM_FRESHERS = 5; // we have 5 freshers

4 ArrayList<Employee>[] employeeLevels = new ArrayList[LEVELS];

5 // queues for each call’s rank

6 Queue<Call>[] callQueues = new LinkedList[LEVELS];
7
8 public CallHandler() { ... }
9
10 Employee getCallHandler(Call call) {

11 for (int level = call.rank; level < LEVELS - 1; level++) {

12 ArrayList<Employee> employeeLevel = employeeLevels[level];

13 for (Employee emp : employeeLevel) {

14 if (emp.free) {

15 return emp;

16 }

17 }

18 }

19 return null;

20 }

最佳答案

这是创建一个 ArrayList 的数组(不是 ArrayList)。正如代码注释所示,员工分为 3 个级别。他们将每个级别存储在 employeeLevels 数组的 3 个 ArrayList 之一中。

或者,他们可以将每个员工级别存储在自己的变量中 - 但这肯定不具有可扩展性或灵 active 。它还会使诸如循环每个级别(实际上,从第 11-12 行开始)之类的事情变得更加困难。

关于java - 数组列表的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9255874/

相关文章:

java - 覆盖包中的 Java 属性

java - 如何在 Java (Android) 中解析简单的 Json 响应(多个字符串)?

java - 演示自定义异常继承java

java - 将列表中的值添加到 Map 中已存在的键

java - 显示数组列表,其中每个元素都在新行上?

java - JNI 通过引用传递,这可能吗?

JAVA 获取带有授权 header 值的请求

java - 尝试运行两个双 for 循环

java - 数组 if 语句并打印数组

java - 如何从java中的数组中读取一行中包含多个元素的多行?