如何创建一个Thread(Prime数字和ArrayList)?

时间:2016-07-01 09:08:57

标签: java multithreading list arraylist

我在下面有以下代码,它会创建从1到100的50个唯一随机数,并将其添加到ArrayList

现在我需要一个Thread(在一个单独的类中),它检查50个唯一的随机数,如果它们是素数(只能由它们自己和1除)。

如果列表中的数字不是素数,则必须从列表中删除它。

不幸的是我没有使用Threads的经验,有人可以帮助我吗?

import java.util.Random;
import java.util.ArrayList;

class RandomPrim {

    public static void main(String[] args) {

        Random nr = new Random();
        int number;
        ArrayList<Integer> liste = new ArrayList<Integer>();

        // get 50 random unique numbers between 1 and 100
        for (int counter = 1; counter <= 50; ) {
            number = 1+nr.nextInt(100);

            if(!(liste.contains(number))) {
                liste.add(number);
                counter++;
            }
        }
        System.out.println("50 random unique numbers between 1 and 100: ");               
        for (int ausgabe : liste) {            
            System.out.print(ausgabe + ", ");
        }
    }
}

1 个答案:

答案 0 :(得分:4)

可以像这样实现单独类中的线程:

public class MyClass implements Runnable {

    private List<Integer> myList;

    public MyClass(List<Integer> myList) {
        this.myList = myList; //Constructor for the class
    }

    @Override
    public void run() {
        //your code here
    }
}

你可以像这样启动线程:

    List<Integer> myList = new ArrayList<>(); //Your list you want to check
    MyClass myClass = new MyClass(myList);
    new Thread(myClass).start();