小编Gee*_*ddy的帖子

循环列表,更好的方法

当我在Java中编写和发现新的处理方式时,我总是对通过列表循环输出数据的更好方法感到困惑.

在下面的例子中,我循环遍历列表并使用计数器,因此很多次我必须在输出中包含一个索引计数器.

我偏爱方法1,但我发现这些方法中的任何一个都有点过时了.我已经看到很多循环列表的例子,而且主要使用方法2.

所以我的问题是什么是更好的方法,如果所有这些方法都一样,那么最标准的是什么?

private ArrayList<String> list = new ArrayList<String>();

public Test() {
    list.add("One");        
    list.add("Two");        
    list.add("Three");      
    list.add("Four");       
    list.add("Five");

    method1();
    method2();
    method3();
}

public void method1() {
    System.out.println("Method 1");
    int i = 1;
    for (String value:list) {
        System.out.println((i++) + " = " + value);
    }
}

public void method2() {
    System.out.println("Method 2");
    for (int i = 0; i < list.size(); i++) {
        System.out.println((i+1) + " = " + list.get(i));
    }
}

public void method3() {
    System.out.println("Method 3");
    Iterator<String> it = list.iterator(); …
Run Code Online (Sandbox Code Playgroud)

java loops arraylist

9
推荐指数
1
解决办法
1030
查看次数

使用 BlockingQueue 时 Runnable 不会停止

我有一个 Runnable 即使条件设置为停止也不会停止。不知道为什么会这样。有时一些线程仍然活着,其他则不是。我已经让它运行了一个多小时,看看它是否会停止,但它不会。它与我传递参数的方式有关吗?

public class ParserWorker implements Runnable {

    private BlockingQueue<String> queue = null;
    private ZipReader zip = null;

    public ParserWorker(BlockingQueue<String> queue, ZipReader zip) {
        this.queue = queue;
        this.zip = zip;
    }

    @Override
    public void run() {
        try {
            while (!queue.isEmpty() || !zip.isClosed()) {
                String line = queue.take();
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是开始一切的课程。

public Start() throws InterruptedException   {
    File zipFile = new File("C:\\development\\data2.zip");
    BlockingQueue<String> queue = new ArrayBlockingQueue<String>(1024);

    ZipReader zip = new ZipReader(queue, zipFile); …
Run Code Online (Sandbox Code Playgroud)

java queue multithreading runnable

2
推荐指数
1
解决办法
895
查看次数

标签 统计

java ×2

arraylist ×1

loops ×1

multithreading ×1

queue ×1

runnable ×1