【问题标题】:How to create a Thread (Prime numbers and ArrayList)?如何创建线程(素数和 ArrayList)?
【发布时间】:2016-07-01 09:08:56
【问题描述】:

我在下面有这段代码,它创建了 50 个从 1 到 100 的唯一随机数,并将其添加到 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 + ", ");
        }
    }
}

【问题讨论】:

  • 没有经验并不是不尝试自己做任何事情的正当理由。基本上,您只是将家庭作业/学习努力的重要部分……丢给了其他人。你认为你会从要求其他人为你做繁重的工作中学到什么?提示:您首先阅读有关线程的教程。或书籍。那里真的有很多材料!
  • 我投票决定将此问题作为题外话结束,因为提问者没有显示任何证据表明他试图自己解决问题;他只是在这里放弃了他的要求。
  • 我投票反对关闭它。应该鼓励、指导、引导而不是阻碍学习的努力。我们都是,现在仍然是初学者。

标签: java multithreading list arraylist


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多