domingo, 23 de octubre de 2016

ARCHIVO-JAVA-ALGORITMOS

El tema de hoy es crear , escribir y para leer un archivo en java.

La segunda clase muestra como leer el contenido de un archivo de texto, se trabajara con el nombre del archivo de la clase anterior.


El objetivo es utilizar clases para escribir sobre archivo [Binarios o de texto] y usar accesos secuenciales o aleatorios para obtener el contenido de los archivos [Binarios o de Texto].


A mi se me facilito el uso de archivos de texto y por eso uso 3 métodos que son muy importantes, y de los cuales se muestran a continuación:

1) File (Para crear el archivo)
2) FileWriter (Para escribir sobre el archivo)
3) FileReader (Para leer el archivo)
El método write de la clase FileWriter es el que se encarga de escribir sobre el archivo de texto. Para no hacer largo esto, aqui estan las clases:
--------------------------------------------------------------------------------------------------------------------------
Clase que permite escribir en un archivo de texto
--------------------------------------------------------------------------------------------------------------------------
//Importamos clases que se usaran
import java.io.File;
import java.io.FileWriter;

public class Escribir
{
public static void main(String []args)
{

//Un texto cualquiera guardado en una variable
String saludo="Hola";

try
{
//Crear un objeto File se encarga de crear o abrir acceso a un archivo que se especifica en su constructor
File archivo=new File("texto.txt");

//Crear objeto FileWriter que sera el que nos ayude a escribir sobre archivo
FileWriter escribir=new FileWriter(archivo,true);

//Escribimos en el archivo con el metodo write
escribir.write(saludo);

//Cerramos la conexion
escribir.close();
}

//Si existe un problema al escribir cae aqui
catch(Exception e)
{
System.out.println("Error al escribir");
}
}
}
--------------------------------------------------------------------------------------------------------------------------
Clase que permite leer un archivo de texto
--------------------------------------------------------------------------------------------------------------------------
//Importamos clases a usar
import java.io.FileReader;
import java.io.BufferedReader;
public class Leer
{
public static void main(String arg[])
{
//Creamos un String que va a contener todo el texto del archivo
String texto="";

try
{
//Creamos un archivo FileReader que obtiene lo que tenga el archivo
FileReader lector=new FileReader("texto.txt");

//El contenido de lector se guarda en un BufferedReader
BufferedReader contenido=new BufferedReader(lector);

//Con el siguiente ciclo extraemos todo el contenido del objeto "contenido" y lo mostramos
while((texto=contenido.readLine())!=null)
{
System.out.println(texto);
}
}

//Si se causa un error al leer cae aqui
catch(Exception e)
{
System.out.println("Error al leer");
}
}
}

--------------------------------------------------------------------------------------------------------------------------
Por ultimo, un ejemplo de la ruta del archivo
--------------------------------------------------------------------------------------------------------------------------
import java.io.*;


public class Archivo{


public File crearArchivo(String ruta) {
File file = null;
try {
file = new File(ruta);
if (!file.exists()) {
file.createNewFile();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return file;
}


public ObjectOutputStream escribeArchivo(String ruta) {
ObjectOutputStream oos = null;
try {
FileOutputStream fos = new FileOutputStream(crearArchivo(ruta));
oos = new ObjectOutputStream(fos);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return oos;
}


public ObjectInputStream leerArchivo(String ruta) {
ObjectInputStream ois = null;
try {
FileInputStream fis = new FileInputStream(crearArchivo(ruta));
ois = new ObjectInputStream(fis);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ois;
}

}
--------------------------------------------------------------------------------------------------------------------------
Ruta---- Aquí tenemos un ejemplo
--------------------------------------------------------------------------------------------------------------------------

package jhon;


/**

*

* @author usuario

*/

import java.io.*;

import java.io.RandomAccessFile;


public class Metodo2 {

Archivo archive = new Archivo();

ObjectInputStream escribiendo;

ObjectOutputStream leyendo;

String ruta = "/D:/Busqueda.txt";----------- Aqui indicamos la ruta de nuestro archivo, aqui lo estamos creando como un documento de tipo txt, que se encuentra ubicado en el disco local D.


Numero[] V = new Numero[10];
public void ingresar() {

for (int i = 0; i < V.length; i++) {

this.V[i].setX(3,1,6,7,5,8);

}
}

public void mostrar( ) {

for (int i = 0; i < V.length; i++) {

System.out.println(V[i]);

}

}


public void buscar(){

for (int i=0; i<V.length;i++){

System.out.println("ingresar numero a buscar");

System.out.println(V[i]);

}

}

void intercambiar(int x[], int i, int j) {

int temp = x[ i ];

x [i] = x [ j ];

x[j] = temp;

}

public void ordenar() {

for (int i = 0; i < V.length;i++ ){

for (int j = i + i; j <V.length; j++) {

if (V[j].getX() < V[i].getX()) {

intercambiar(V, i, j);

}

}

}

}

private void intercambiar(Numero[] V, int i, int j) {

throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

}

}

--------------------------------------------------------------------------------------------------------------------------
Autor : cuchox
Pagina de Ayuda: http://curiotecnology.blogspot.pe/
--------------------------------------------------------------------------------------------------------------------------

domingo, 4 de septiembre de 2016

Java - Arrays


Java - Arrays


Java proporciona una estructura de datos, la matriz , que almacena una colección de tamaño fijo secuencial de elementos del mismo tipo. Una matriz se utiliza para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables del mismo tipo.
En lugar de declarar las variables individuales, como Number0, número1, ..., y number99, se declara una variable de matriz tales como números y uso de los números [0], números [1], y, números ... [99] para representar variables individuales.

Declaración de variables de matriz:

Para utilizar una matriz en un programa, debe declarar una variable para hacer referencia a la matriz, y se debe especificar el tipo de matriz de la variable puede hacer referencia. Aquí es la sintaxis para declarar una variable de matriz:
dataType[] arrayRefVar;   // preferred way.

or

dataType arrayRefVar[];  //  works but not preferred way.
Nota: El estilo [] arrayRefVar tipoDatos se prefiere. El estilo tipoDatos arrayRefVar [] proviene del lenguaje C / C ++ y se adoptó en Java para dar cabida a los programadores de C / C ++.

Ejemplo:

Los siguientes fragmentos de código son ejemplos de esta sintaxis:
double[] myList;         // preferred way.

or

double myList[];         //  works but not preferred way.

Creación de matrices:

Puede crear una matriz utilizando el operador new con la siguiente sintaxis:
arrayRefVar = new dataType[arraySize];
La declaración anterior hace dos cosas:
  • Se crea una matriz usando nuevo tipo de datos [arraySize de];
  • Se asigna la referencia de la matriz recién creada a la arrayRefVar variable.
Declarar una variable de matriz, la creación de una matriz, y la asignación de la referencia de la matriz a la variable se pueden combinar en una sola declaración, como se muestra a continuación:
dataType[] arrayRefVar = new dataType[arraySize];
Como alternativa, puede crear matrices de la siguiente manera:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Los elementos de la matriz se accede a través del índice . Los índices de matriz se basan 0-; es decir, que empiezan desde 0 a arrayRefVar.length-1 .

Ejemplo:

declaración siguiente declara una variable de matriz, miLista, crea una matriz de 10 elementos de tipo doble y asigna su referencia a miLista:
double[] myList = new double[10];
La siguiente imagen representa matriz miLista. Aquí, miLista tiene diez valores dobles y los índices son de 0 a 9.
matriz de Java

Las matrices de procesamiento:

Al procesar elementos de la matriz, que a menudo utilizan ya sea por lazo o bucle foreach porque todos los elementos de una matriz son del mismo tipo y el tamaño de la matriz es conocida.

Ejemplo:

Aquí está un ejemplo completo de mostrar cómo crear, inicializar y el proceso de matrices:
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}
Esto produciría el siguiente resultado:
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Los bucles foreach:

JDK 1.5 introdujo un nuevo ciclo for conocido como bucle foreach o bucle for mejorado, lo que le permite atravesar la gama completa de forma secuencial sin necesidad de utilizar una variable de índice.

Ejemplo:

El código siguiente muestra todos los elementos de la matriz miLista:
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}
Esto produciría el siguiente resultado:
1.9
2.9
3.4
3.5

Métodos para pasar matrices:

Al igual que puede pasar valores de tipos simples de métodos, también puede pasar matrices a los métodos. Por ejemplo, el método siguiente muestra los elementos de una matriz int:
public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}
Se puede llamar al pasar una matriz. Por ejemplo, la siguiente sentencia invoca el método printArray para mostrar 3, 1, 2, 6, 4 y 2:
printArray(new int[]{3, 1, 2, 6, 4, 2});

Volviendo una matriz de un Método:

Un método puede devolver una matriz. Por ejemplo, el método que se muestra a continuación devuelve una matriz que es la inversión de otra matriz:
public static int[] reverse(int[] list) {
  int[] result = new int[list.length];

  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}

La clase Arrays:

La clase java.util.Arrays contiene varios métodos estáticos de clasificación y búsqueda de matrices, matrices de comparación, y llenando elementos de la matriz.Estos métodos están sobrecargados para todos los tipos primitivos.
SNLos métodos con Descripción
1public static int busquedaBinaria (Object [] a, Object key)
Busca en la matriz especificada de objetos (Byte, Int, doble, etc.) para el valor especificado usando el algoritmo de búsqueda binaria. La matriz debe ser ordenada antes de hacer esta llamada. Esto devuelve el índice de la clave de búsqueda, si está incluido en la lista; de lo contrario, (- (+ 1 punto de inserción).
2boolean equals estáticos públicos (larga [] a, a largo [] a2)
Devuelve true si las dos matrices especificadas de productos largos son iguales entre sí. Dos matrices se consideran iguales si ambas matrices contienen el mismo número de elementos, y todos los pares correspondientes de los elementos en las dos matrices son iguales. Esto devuelve cierto si los dos arreglos son iguales. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int, etc.)
3pública relleno del espacio vacío estático (int [] a, int val)
Asigna el valor int especificado a cada elemento de la matriz especificada de enteros. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int etc.)
4pública tipo static void (Object [] a)
Ordena la matriz especificada de objetos en orden ascendente, de acuerdo con el ordenamiento natural de sus elementos. Mismo método podría ser utilizado por todos los demás tipos de datos primitivos (byte, short, int, etc.)
Autor  : Anónimo
HTML: www.tutorialspoint.com/java/java_arrays.htm (TRADUCIDO A ESPAÑOL)
tutorialspoint

ARRAYLIST DE OBJETOS EN JAVA



ARRAYLIST DE OBJETOS EN JAVA


Ya se habló sobre los ArrayList en java, pero ¿si necesitamos un ArrayList de objetos? Algo más complejo e interesante para hacer, ya que, agregando la especialidad del dinamismo, encontramos que un espacio del ArrayList en java puede contener diferentes tipos de datos en él. Como sabemos la complejidad para este tipo de conceptos es al momento de modificar y eliminar, y no es tanto por lo difícil, sino por el manejo de memoria que hay que tener al momento de las comparaciones. Como se crea un ArrayList de objetos en java 



COMO SE CREA UN ARRAYLIST

  

La sintaxis para crear el ArraList de objetos es la siguiente:   

 

       
        ArrayList  NombreArrayList= new ArrayList  ();
       
 

ClaseDelObjeto => la clase que vamos a emplear para el manejo de los datos del objeto.

NombreArrayList => el nombre del ArrayList que vamos a manipular.


Los anteriores son datos que se reemplazaran con los nombres que deseemos y debamos usar. Para usar esta sintaxis debemos de importar las librerías necesarias para usar el ArrayList:

       
             import java.util.ArrayList;
       
 

Metodos útiles para un Arraylist en java 

Para realizar las operaciones comunes tales como ingresar, eliminar, buscar, modificar datos en un Arraylist encontraremos algunos métodos útiles para tal objetivo:
  • add(X) -> Añade un valor u objeto al final del ArrayList. 
  • size() -> Retorna el tamaño del ArrayList. 
  • contains(X) -> Retorna true si existe el elemento X en el ArrayList. 
  • set(i, X) -> Modifica el elemento que esta en la posición i, por el nuevo elemento X.
  •  remove(X) -> Elimina el elemento X o en su defecto el elemento en la posición X.
  •  get(i) -> Obtiene el elemento en la posición i del Array List.