Java - Ayuda con Array List

 
Vista:
Imágen de perfil de Juan Caballero

Ayuda con Array List

Publicado por Juan Caballero (1 intervención) el 07/04/2017 00:59:13
Hola, estoy comenzando a programar en Java, tengo un punto de un taller y quisiera saber si alguien me podría dar una mano, el punto es este:

Leer por teclado una serie de 10 números enteros. La aplicación debe indicarnos si los números están ordenados de forma creciente, decreciente, o si están desordenados.

Así llevo el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Numero7;
 
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
 
/**
 *
 * @author Juan Caballero
 */
public class Num7 {
 
    public static void main (String[]args){
        int j,x,i,k=0,asc=0,des=0,deso=0;
        List diez = new ArrayList();
        Scanner leer = new Scanner(System.in);
        System.out.println("***********************************");
        System.out.println("* INTRODUZCA 10 NUMEROS POSITIVOS *");
        System.out.println("***********************************");
 
        for(i=1;i<=10;i++){
            x = leer.nextInt();
            diez.add(x);
        }
 
        for(i=0;i<(diez.size());i++){
            j=(int) diez.get(i);
 
            if(j>k){
                asc+=1;
            }else if(j<k){
                des+=1;
            }else if(){
            }
        }
    }
}

Pero no se como hacerlo, no se si sirva con un Comparator(), pero no lo se aplicar, no se que hacer, ya he googleado pero no he encontrado algo que me sirva, solo encuentro cosas para ordenar una lista.

De antemano les agradezco mucho, Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con Array List

Publicado por Andrés (340 intervenciones) el 07/04/2017 01:37:31
Dada la lista con tamaño n de elementos enteros, lo que tienes que verificar es:

1.- Orden ascendente.- el elemento en la posición i es menor o igual al elemento en la pocisión i+1
2.- Order descendente.- el elemento en la posición i es mayor o igual al elemento en la pocisión i+1

Para i de 0 a n-1

Si los puntos 1 ó 2 no se cumplen, la lista esta desordenada.

Algo así como:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.util.Arrays;
import java.util.List;
 
/**
 *
 * @author andreas
 */
public class NewClass {
 
    //Este método verifica que elemento en posicion i  <= elemento en posicion k+1, k en (0, longitud de la lista-1)
    public static boolean estaOrdenadoAscendentemente(List<Integer> arreglo) {
 
        boolean ordenadoAscendente = true;
 
        for (int i = 0; i < arreglo.size() - 1 && ordenadoAscendente; i++) {
            ordenadoAscendente = arreglo.get(i) <= arreglo.get(i + 1);
        }
 
        return ordenadoAscendente;
 
    }
 
    //Este método verifica que elemento en posicion i  >= elemento en posicion k+1, k en (0, longitud de la lista-1)
    public static boolean estaOrdenadoDescendentemente(List<Integer> arreglo) {
 
        boolean ordenadoDescendente = true;
 
        for (int i = 0; i < arreglo.size() - 1 && ordenadoDescendente; i++) {
            ordenadoDescendente = arreglo.get(i) >= arreglo.get(i + 1);
        }
 
        return ordenadoDescendente;
 
    }
 
    public static void main(String[] args) {
 
        Integer[] arreglo = {1, 2, 3, 4, 5, 6, 7, 8, 9};
 
        if (estaOrdenadoAscendentemente(Arrays.asList(arreglo))) {
            System.out.println("El arreglo está ordenado ascendentemente");
        } else if (estaOrdenadoDescendentemente(Arrays.asList(arreglo))) {
            System.out.println("El arreglo está ordenado ascendentemente");
        } else {
            System.out.println("El arreglo está desordenado");
        }
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Ayuda con Array List

Publicado por Renzo (232 intervenciones) el 07/04/2017 16:03:50
Hola
en lugar de tu bloque:

1
2
3
4
5
6
7
8
9
10
for(i=0;i<(diez.size());i++){
    j=(int) diez.get(i);
 
    if(j>k){
        asc+=1;
    }else if(j<k){
        des+=1;
    }else if(){
    }
}


Deberás poner este bloque:

1
2
3
4
5
6
7
8
9
10
11
12
13
boolean ordenAsc=true;
boolean ordenDesc=true;
for(int i=0;i<diez.size()-1;i++){
	if((int)(diez.get(i)) < (int)(diez.get(i+1))){
		ordenDesc=false;
	}
	if((int)(diez.get(i)) > (int)(diez.get(i+1))){
		ordenAsc=false;
	}
}
System.out.println("Ascendente : "+ordenAsc);
System.out.println("Descendente : "+ordenDesc);
System.out.println("Desordenados : "+ !(ordenDesc || ordenAsc));



Espero te sirva.

Saludos

Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar