
帮帮忙:用java编程:创建两个线程的是实例,分别将数组从小到大和从大到小排列,输出结果。
2个回答
展开全部
import java.util.*;
public class Threadtt {
public static void main(String[] args) {
int[] a = { 1, 4, 2, 3, 6, 0 };
tt1 ta = new tt1(a);
tt2 tb = new tt2(a);
ta.start();// 启动线程1...
tb.start();
}
}
// 线程1,从大到小排列
class tt1 extends Thread {
int []a;
public tt1(int[] a)
{
this.a=a;
}
void sorta() {
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length - j - 1; i++) {
if (a[i] < a[i + 1]) {
int t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
}
for (int n : a)
System.out.print(n+" ");
System.out.println("");
}
public void run() {
// synchronized(a)
// {
sorta();
// }
}
}
// 线程2 从小到大排列
class tt2 extends Thread {
int []a;
public tt2(int[] a)
{
this.a=a;
}
void sorta() {
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length - j - 1; i++) {
if (a[i] > a[i + 1]) {
int t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
}
for (int n : a)
System.out.print(n+" ");
System.out.println("");
}
public void run() {
// synchronized(a)
// {
sorta();
// }
}
}
public class Threadtt {
public static void main(String[] args) {
int[] a = { 1, 4, 2, 3, 6, 0 };
tt1 ta = new tt1(a);
tt2 tb = new tt2(a);
ta.start();// 启动线程1...
tb.start();
}
}
// 线程1,从大到小排列
class tt1 extends Thread {
int []a;
public tt1(int[] a)
{
this.a=a;
}
void sorta() {
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length - j - 1; i++) {
if (a[i] < a[i + 1]) {
int t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
}
for (int n : a)
System.out.print(n+" ");
System.out.println("");
}
public void run() {
// synchronized(a)
// {
sorta();
// }
}
}
// 线程2 从小到大排列
class tt2 extends Thread {
int []a;
public tt2(int[] a)
{
this.a=a;
}
void sorta() {
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length - j - 1; i++) {
if (a[i] > a[i + 1]) {
int t = a[i + 1];
a[i + 1] = a[i];
a[i] = t;
}
}
}
for (int n : a)
System.out.print(n+" ");
System.out.println("");
}
public void run() {
// synchronized(a)
// {
sorta();
// }
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询