如何将迭代字符串值传递给接受不同类型参数的函数

时间:2012-11-08 07:12:56

标签: java multithreading concurrency iterator

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

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());        
         }

我如何再次将迭代的字符串传递给函数submit(...)。我希望将第一个迭代的字符串传递给函数,然后将迭代的值传递给该函数,依此类推.....可以解释一下这个...谢谢

1 个答案:

答案 0 :(得分:0)

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

while(itr.hasNext()) {
  Callable<List<String>> nextWorker = new SimpleCrawler(itr.next().toString())
  Future<List<String>> nextSubmit = executor.submit(nextWorker)
  ...
}