-4

有人可以解释/告诉我这个的解决方案....这里的代码示例:

public static void main(String[] args) throws InterruptedException, ExecutionException {
      queue = new Queue<String>();
      set = new SET<String>();
      ExecutorService executor = Executors.newFixedThreadPool(NO_OF_THREADS);                       
      List<Future<List<String>>> list = new ArrayList<Future<List<String>>>();  
      System.out.println("enter the url");
      Scanner sc=new Scanner(System.in);
      String input=sc.next();
      l.add(input);
      queue.enqueue(input);
      Callable<List<String>> worker = new SimpleCrawler(input);       
      Future<List<String>> submit = executor.submit(worker);        
      list.add(submit);
      ArrayList<?> l1=(ArrayList<?>) submit.get();
      Iterator<?> itr=l1.iterator();

      while(itr.hasNext())
         {
             System.out.println(itr.next());        
         }

我怎样才能再次将迭代字符串传递给函数提交(...)。我想将第一个迭代字符串传递给函数,并将下一个迭代值传递给该函数等等......可以解释一下这个......谢谢

4

1 回答 1

0

从您的问题中并不清楚您想要实现什么,但是为什么不SimpleCrawler使用迭代字符串创建一个新字符串并将其传递给同一个执行程序,例如

while(itr.hasNext()) {
  Callable<List<String>> nextWorker = new SimpleCrawler(itr.next().toString())
  Future<List<String>> nextSubmit = executor.submit(nextWorker)
  ...
}
于 2012-11-08T07:45:13.837 回答