帮我写一个java程序要求:利用线程输出 “a~z”的26个字母(横向输出),要求每隔—秒钟输出随机个字母 任务要求: 1. 实现Runnable接口方式创建线程类 (1)定义一个char类型的数组letterl来存放26个字母创建无参构造方法对数组中元素进行循环腻值。 abcdefghijklmnopqrstuvwxyz,赋值顺序 (2)重号run0方法,再建立一个循环,循坏中实现每隔1秒打印输出一个字母,总其输出前N个,N是0~26之间的随机数,包合0和26之同的随初数 2.创建1个子线程用来打印输出字母
时间: 2024-03-23 08:41:00 浏览: 72
华为Java高级面试题:用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C4D…26Z
5星 · 资源好评率100%
好的,请看以下代码:
```java
import java.util.Random;
public class AlphabetPrinter implements Runnable {
private char[] letters;
public AlphabetPrinter() {
letters = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
}
@Override
public void run() {
Random random = new Random();
int n = random.nextInt(27); // 随机数包含0和26
int count = 0;
while (count < n) {
int index = random.nextInt(26);
System.out.print(letters[index] + " ");
count++;
try {
Thread.sleep(1000); // 线程休眠1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Thread t = new Thread(new AlphabetPrinter());
t.start();
}
}
```
这个程序利用了Java的多线程机制,实现了每隔1秒输出一个字母,并且输出的字母数目为0到26之间的随机数。在主函数中创建了一个子线程,并启动它。子线程的执行体是AlphabetPrinter类的run方法,其中包含了输出字母的逻辑。
阅读全文