我应该如何使用 for each 循环遍历二维数组列表

How should i traverse inside two dimensional array list using for each loop

public List<String> findItinerary(List<List<String>> tickets) {
    // creating adjencency list
    
    for(String[] ticket : tickets)
    {
        map.putIfAbsent( ticket[0] ,new PriorityQueue<String>());
        map.get(ticket[0]).add(ticket[1]);
    } 
    dfs("JKF");
    return path;
}

我正在尝试在此处创建邻接列表,但在遍历票证内的列表时遇到问题。我在使用 for each loop 时遇到了这个错误 "List cannot be converted to String[] for(String[] ticket : tickets)"

您正在使用 String[] 而您应该使用 List<String>。将您的代码更改为:

for(List<String> ticket : tickets)
{
    map.putIfAbsent(ticket.get(0), new PriorityQueue<String>());
    map.get(ticket.get(0)).add(ticket.get(1));
} 

更新

如果要转换数组中的 List<String>,请使用此代码段:

String[] array = new String[ticket.size()];
ticket.toArray(array); // fill the array

我会这样建议。

  • 使用 computeIfAbsent 将值放入键中。
  • 然后 returns 现有值或刚输入的值。
  • 那么插入就不需要查找key了
public List<String> findItinerary(List<List<String>> tickets) {
    // creating adjencency list
    
    for(List<String> ticket : tickets)  {
        map.computeIfAbsent( ticket.get(0), v->new PriorityQueue<String>())
                                  .add(ticket.get(1));
    } 
    dfs("JKF");
    return path;
}

至于返回 path 我没有看到它在任何地方定义。