
muestra posición del arrayáis en hilos
Publicado por aaron (1 intervención) el 05/08/2022 06:07:10
hola amigo este es mi primer pos y quisiera que me ayudara a resolver un problema que tengo de la escuela.

El problema dice que tengo que crear los arreglos en main y que cuente de 0 a 500 y de 501 a 1000 y mostrarlos en dos hilo después guardarlos los resultados de los hilos en una arreglo y mostrar la posición es lo que me esta dando problemas por que todo los damas ya lo tengo solo me falta las posiciones.
[code] ----------clase main----------
public class Del_0_al_1000 {
public static void main(String[] args) {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
for (int i = 0; i < 1000; i++) {
grabar.add(new ArrayList<>());
}
hilo1 h1 = new hilo1("", grabar);
hilo2 h2 = new hilo2("", grabar);
h1.start();
h2.start();
}
public int[] llamararre1() {
int[] numeros1 = new int[501];
System.out.println("1°");
for (int i = 0; i < 501; i++) {
numeros1[i] = i;
}
return numeros1;
}
public int[] llamararre2() {
int[] numeros2 = new int[1000];
System.out.println("2°");
for (int i = 500; i < 1000; i++) {
numeros2[i] = i + 1;
}
return numeros2;
}
}
----------clase hilo1----------
public class hilo1 extends Thread {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
int numero, a;
hilo1(String llenado1, ArrayList<ArrayList<String>> a) {
super(llenado1);
grabar = a;
}
public synchronized void run() {
if (numero % 2 == 0) {
try {
Del_0_al_1000 opj = new Del_0_al_1000();
int[] vector1 = opj.llamararre1();
for (int e = 0; e < 501; e++) {
String g = String.valueOf(vector1[e]);
grabar.get(0).add(g);
int pos = grabar.indexOf(g);
System.out.println("HILO1 ▶ SE ASIGNO VALOR = " + vector1[e] + " POCISION " + pos);
}
wait();
} catch (InterruptedException ee) {
Logger.getLogger(hilo1.class.getName()).log(Level.SEVERE, null, ee);
}
}
}
}
----------clase hilo2----------
public class hilo2 extends Thread {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
int a;
hilo2(String llenado2, ArrayList<ArrayList<String>> a) {
super(llenado2);
grabar = a;
}
public synchronized void run() {
Del_0_al_1000 opj = new Del_0_al_1000();
int[] vector2 = opj.llamararre2();
notify();
for (int e = 500; e < 1000; e++) {
String g = String.valueOf(vector2[e]);
grabar.get(0).add(g);
int pos = grabar.indexOf(g);
System.out.println("\t\t\t HILO2 ▶ SE ASIGNO VALOR = "
+ vector2[e] + " POCISION " + g);
}
}
/code]

El problema dice que tengo que crear los arreglos en main y que cuente de 0 a 500 y de 501 a 1000 y mostrarlos en dos hilo después guardarlos los resultados de los hilos en una arreglo y mostrar la posición es lo que me esta dando problemas por que todo los damas ya lo tengo solo me falta las posiciones.
[code] ----------clase main----------
public class Del_0_al_1000 {
public static void main(String[] args) {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
for (int i = 0; i < 1000; i++) {
grabar.add(new ArrayList<>());
}
hilo1 h1 = new hilo1("", grabar);
hilo2 h2 = new hilo2("", grabar);
h1.start();
h2.start();
}
public int[] llamararre1() {
int[] numeros1 = new int[501];
System.out.println("1°");
for (int i = 0; i < 501; i++) {
numeros1[i] = i;
}
return numeros1;
}
public int[] llamararre2() {
int[] numeros2 = new int[1000];
System.out.println("2°");
for (int i = 500; i < 1000; i++) {
numeros2[i] = i + 1;
}
return numeros2;
}
}
----------clase hilo1----------
public class hilo1 extends Thread {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
int numero, a;
hilo1(String llenado1, ArrayList<ArrayList<String>> a) {
super(llenado1);
grabar = a;
}
public synchronized void run() {
if (numero % 2 == 0) {
try {
Del_0_al_1000 opj = new Del_0_al_1000();
int[] vector1 = opj.llamararre1();
for (int e = 0; e < 501; e++) {
String g = String.valueOf(vector1[e]);
grabar.get(0).add(g);
int pos = grabar.indexOf(g);
System.out.println("HILO1 ▶ SE ASIGNO VALOR = " + vector1[e] + " POCISION " + pos);
}
wait();
} catch (InterruptedException ee) {
Logger.getLogger(hilo1.class.getName()).log(Level.SEVERE, null, ee);
}
}
}
}
----------clase hilo2----------
public class hilo2 extends Thread {
ArrayList<ArrayList<String>> grabar = new ArrayList<ArrayList<String>>();
int a;
hilo2(String llenado2, ArrayList<ArrayList<String>> a) {
super(llenado2);
grabar = a;
}
public synchronized void run() {
Del_0_al_1000 opj = new Del_0_al_1000();
int[] vector2 = opj.llamararre2();
notify();
for (int e = 500; e < 1000; e++) {
String g = String.valueOf(vector2[e]);
grabar.get(0).add(g);
int pos = grabar.indexOf(g);
System.out.println("\t\t\t HILO2 ▶ SE ASIGNO VALOR = "
+ vector2[e] + " POCISION " + g);
}
}
/code]
Valora esta pregunta


0