Manera correcta y eficiente de leer las columnas de elementos sabios -- java camp Relacionados El problema

Correct and Efficient Way to read the Elements Column Wise


1
vote

problema

Español

No puedo encontrar la forma correcta de leer las columnas de elementos sabio.

Entrada es una lista que contiene 10 LISTA y estas 10 LISTAS CONTENIDORES contiene elementos que tienen un tamaño de columna variable

lo que hice

TASK1: Agregar 10 LISTA EN UN SINGELLISTA.

TASK2: Encontrar el tamaño máximo Una columna que puede tener para que pueda aplicar el bucle hasta esa columna.

Tarea 3 Recuperando la lista de columnywise.

Código: // Tareas 1 Agregar 10 LISTA EN UN SINGELLISTA

      List<List<Integer>> outer=new ArrayList<>();     ArrayList<Integer> innerSize=new ArrayList<Integer>();     List<Integer> inner=null;      int ar[][]=new int[10][];      int ar1[] =new int[ar.length];       for(int i=0;i<10;i++)       {           System.out.println("Enter the Size of the list "+i);              String s1=sc.next();               int N=Integer.parseInt(s1); //Calculate the Size:               inner=new ArrayList<Integer>();               innerSize.add(N);          for(int j=0;j<N;j++)          {               System.out.println("Enter the Elements of the list "+i);             inner.add(Integer.parseInt(sc.next()));          }          System.out.println(inner);          outer.add(inner);       }       System.out.println(outer);        Task 2        System.out.println("Finding the maximum element");       Integer max=null;      Iterator<Integer> ltr=innerSize.listIterator();       if(ltr.hasNext())       {           Integer element=(Integer)ltr.next();              max=element;             while(ltr.hasNext())             {                 Integer element1=(Integer)ltr.next();                 if(element1>max)                 {                     max=element1;                 }             }       }       System.out.println("Maximum Element is"+max);       //Task 3       //Retrieving the List ColumnWise.       Iterator ltr1=outer.listIterator();        for(int j=0;j<max;j++)       {                while(ltr1.hasNext())               {                   List l0tol9=(List)ltr1.next(); //I have one list taken from the 10 lists.                   Iterator ltr2=l0tol9.listIterator();                     while(ltr2.hasNext())                     {                         Integer i1=(Integer)ltr2.next();                         if(i1!=null)                         {                             System.out.println(i1);                             break;                         }                     }               }            }   

Entrada: Digamos que tengo esta lista del usuario: (Outerlist con el tamaño de la columna MAX 2)

  [[1], [1], [1, 2], [1], [1], [1], [1], [1], [1], [1]] //outerlist   

Salida esperada es

  1 1   1 1 1 1 1 1 1 1 2   

Salida mostrada: (solo 1ª columna)

  1 1 1 1 1 1 1 1 1 1   
Original en ingles

I am unable to find the correct way of reading the elements column wise.

Input is a List which contains 10 list and these 10 list contains elements having variable Column Size

What I did

Task1: Adding 10 List into a SingleList.

Task2: Finding the maximum size a column can have so that I can apply the loop till that Column.

Task 3 Retrieving the List ColumnWise.

Code: //Task 1 Adding 10 List into a SingleList

    List<List<Integer>> outer=new ArrayList<>();     ArrayList<Integer> innerSize=new ArrayList<Integer>();     List<Integer> inner=null;      int ar[][]=new int[10][];      int ar1[] =new int[ar.length];       for(int i=0;i<10;i++)       {           System.out.println("Enter the Size of the list "+i);              String s1=sc.next();               int N=Integer.parseInt(s1); //Calculate the Size:               inner=new ArrayList<Integer>();               innerSize.add(N);          for(int j=0;j<N;j++)          {               System.out.println("Enter the Elements of the list "+i);             inner.add(Integer.parseInt(sc.next()));          }          System.out.println(inner);          outer.add(inner);       }       System.out.println(outer);        Task 2        System.out.println("Finding the maximum element");       Integer max=null;      Iterator<Integer> ltr=innerSize.listIterator();       if(ltr.hasNext())       {           Integer element=(Integer)ltr.next();              max=element;             while(ltr.hasNext())             {                 Integer element1=(Integer)ltr.next();                 if(element1>max)                 {                     max=element1;                 }             }       }       System.out.println("Maximum Element is"+max);       //Task 3       //Retrieving the List ColumnWise.       Iterator ltr1=outer.listIterator();        for(int j=0;j<max;j++)       {                while(ltr1.hasNext())               {                   List l0tol9=(List)ltr1.next(); //I have one list taken from the 10 lists.                   Iterator ltr2=l0tol9.listIterator();                     while(ltr2.hasNext())                     {                         Integer i1=(Integer)ltr2.next();                         if(i1!=null)                         {                             System.out.println(i1);                             break;                         }                     }               }            } 

Input:Lets say I got this list from user:(outerList with max Column Size 2)

[[1], [1], [1, 2], [1], [1], [1], [1], [1], [1], [1]] //outerlist 

Expected Output is

1 1   1 1 1 1 1 1 1 1 2 

Output Shown:(Only 1st Column)

1 1 1 1 1 1 1 1 1 1 
  

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Aquí hay una manera fácil de buscar listas de 2-D columna:

  int maxColSize = outer.stream().mapToInt(List::size).max().orElse(0); for (int y=0; y<maxColSize; y++) {     for (int x=0; x<outer.size(); x++) {         List<Integer> currentInner = outer.get(x);         if (currentInner.size() > y) {             System.out.println(currentInner.get(y));         }     } }   

Puede probarlo aquí .


Si no puede usar Java8, sustituya la primera línea con lo siguiente:

  int maxColSize=0; for (List<Integer> row : outer) { maxColSize = Math.max(maxColSize, row.size()); }   
 

Here is an easy way to browse 2-D Lists column-wise :

int maxColSize = outer.stream().mapToInt(List::size).max().orElse(0); for (int y=0; y<maxColSize; y++) {     for (int x=0; x<outer.size(); x++) {         List<Integer> currentInner = outer.get(x);         if (currentInner.size() > y) {             System.out.println(currentInner.get(y));         }     } } 

You can try it here.


If you can't use Java8, substitute the first line with the following :

int maxColSize=0; for (List<Integer> row : outer) { maxColSize = Math.max(maxColSize, row.size()); } 
 
 
     
     

Relacionados problema

76  ¿Cuál es el significado de la advertencia de seguridad de tipo en ciertos moldes genéricos de Java?  ( What is the meaning of the type safety warning in certain java generics casts ) 
¿Cuál es el significado de la advertencia ? Tipo de seguridad: el lanzamiento del objeto a LISTE & LT; INTEGER & GT; en realidad está revisando la lista de...

3  ¿Consecuencias de dirigir un archivo de clase Java en diferentes JRE?  ( Consequences of running a java class file on different jres ) 
¿Cuáles son las consecuencias de ejecutar un archivo de clase Java compilado en JDK 1.4.2 en JRE 1.6 o 1.5? ...

4  ¿Cómo configurar correctamente una aplicación Multi Module SpringMVC creada por AppFuse en Eclipse?  ( How to properly setup a multi module springmvc application created by appfuse in ) 
Estoy tratando de configurar un Multi Module Springmvc AppFuse Aplicación en Eclipse, pero parece que estoy enfrentando muchos errores en Eclipse después de i...

116  Java LIB o APP para convertir el archivo CSV a XML? [cerrado]  ( Java lib or app to convert csv to xml file ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

59  Haciendo que el eclipse se comporten como Visual Studio  ( Making eclipse behave like visual studio ) 
Estoy haciendo un desarrollo de Android, y prefiero mucho el estudio visual, pero tendré que usarlo eclipse para esto. ¿Alguien ha hecho una herramienta q...

41  ¿El mejor componente de navegador Java / swing? [cerrado]  ( Best java swing browser component ) 
Según lo que actualmente representa, esta pregunta no es un buen ajuste para nuestro Q & Amp; un formato. Esperamos que las...

4  ¿Cómo puedo configurar los archivos de LookandFeel en Java?  ( How can i setup lookandfeel files in java ) 
Necesito configurar los archivos de LookandFeel en JDK 1.6. Tengo dos archivos: napkinlaf-swingset2.jar napkinlaf.jar ¿Cómo puedo configurar esto ...

17  ¿Cómo puedo ver qué hay en mi montón en Java?  ( How can i see what is in my heap in java ) 
He logrado obtener una "fugas" de memoria en una solicitud de Java que estoy desarrollando. Al ejecutar mi suite Juit Test, salgo al azar las excepciones de m...

98  ¿Cómo accedería a las propiedades de objetos desde un método de objeto? [cerrado]  ( How would you access object properties from within an object method ) 
Según lo que actualmente representa, esta pregunta no es un buen ajuste para nuestro Q & Amp; un formato. Esperamos que las...

266  ¿Cuál es la diferencia entre un INT y un entero en Java y C #?  ( What is the difference between an int and an integer in java and c ) 
Estaba leyendo más Joel en el software Cuando me encontré en Joel Spolsky diciendo algo sobre un tipo particular de programador que sabe la diferencia e...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos