sexta-feira, 6 de setembro de 2013

Vetores



O uso de arrays na programação Java tem uma característica que é a imutabilidade dos objetos array, ou seja suas dimensões uma vez definidas nõa se modificam, a não ser que  seja criado um novo array e os dados copiados para ele, porem ela e a forma mais rápida para pesquisa de collection.
As classes ArrayList e Vector são praticamente idênticas, exceto pelo fato de que se formos desenvolver um programa que execute multiplas tarefas simultaneamente (muiltiThread), e que estas tarefas simultâneas façam uso da lista de objetos também simultâneamente, será necessário usar a classe Vector que é preparada para atender chamadas simultâneas, enquanto que o ArrayList não, quanto a performance ambos são semelhantes, elas permitem remoção ou adição de records.

import java.util.*; //usado no Vector e ArrayList
public class colecoes
{         
    public static void main(String[] args)  {       
            colecoes cl= new colecoes();
            cl.array();cl.vector();cl.arraylist();
    }       
    public void array(){
            String[] nomes= new String[3];
                                   nomes[0]= "manoel";nomes[1]= "Lucia";nomes[2]= "Janaina";
            Arrays.sort(nomes);
            for (int i=0;i < nomes.length;i++)
                        System.out.println(nomes[i]);
            System.out.println("\n");
    }    
    public void vector(){
            Vector nomes= new Vector();
                        nomes.add("manoel");
                        nomes.add("Lucia");
                        nomes.add("Janaina");
                        nomes.remove(3);       // um Vector consegue remover um item
            Iterator inomes = nomes.iterator();     // Iterador serve para varrer o Vector
            // um Vector nao possui sort, para isto deve-se transforma-lo em Array com .toArray();
            while(inomes.hasNext())
                        System.out.println(inomes.next());
            Object odir[]= nomes.toArray();                      // Convertendo um vector em um Array
            String
sdir[]= new String[nomes.size()];
            System.arraycopy (odir,0,sdir,0,sdir.length);
            System.out.println("\n");
    }   
    public void arraylist(){
                ArrayList<String> valores = new ArrayList<String>();            
                valores.add("manoel");
                valores.add("lucia");
                valores.add("Janaina");                   
                for(int i = 0; i < valores.size(); i++)
                  System.out.println(valores.get(i));
    }
}

Convertendo Array em lista e trabalhando com lista
import java.util.*;
public class Algos
{
  private String nomes[] = {"ala", "hospital", "enfermaria", "consultorio"};
  private List lista; 
  public Algos()  {
      lista = Arrays.asList(nomes);
  } 
  public void imprime()  {
      int resultado;
      System.out.println("Originais: "+lista);
      Collections.sort(lista, Collections.reverseOrder());
      System.out.println("Inversamente ordenados: "+lista);
      Collections.shuffle(lista);
      System.out.println("Embaralhados: "+lista);
      Collections.sort(lista);
      System.out.println("Ordenados: "+lista);
      System.out.println("Busca por: "+nomes[1]);
      resultado = Collections.binarySearch(lista, nomes[1]);
      System.out.println(resultado >=0 ? "achou em "+resultado:"+nao achou "+ resultado);
  } 
  public static void main(String args[])  {
    new Algos().imprime();
  }
}

Sorting em um  Array

    int[] intArray = new int[] {4, 1, 3, -23};
    Arrays.sort(intArray);
    // [-23, 1, 3, 4]
    
    String[] strArray = new String[] {"z", "a", "C"};
    Arrays.sort(strArray);
    // [C, a, z]
    
    // Case-insensitive sort
    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
    // [a, C, z]
    
    // Reverse-order sort
    Arrays.sort(strArray, Collections.reverseOrder());
    // [z, a, C]
    
    // Case-insensitive reverse-order sort
    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
    Collections.reverse(Arrays.asList(strArray));
    // [z, C, a]

Funcionamento de um Vector

Modelo básico:

import java.util.Vector;

public class testeVector {
  public static void main(String args[]) {
    Vector v = new Vector  ();
    v.add("A");
    v.add("B");

    Vector outter = new Vector > ();
    outter.add(v);
    String s = (String) ((Vector) outter.get(0)).get(0);
   
    System.out.println("Exibe linha 0 coluna 1: "+s);
    System.out.println("Exibe linha 0 coluna 2: "+((Vector) outter.get(0)).get(1));   
    System.out.println("Exibe Vector          : "+outter);
    System.out.println("Exibe o tamanho       : "+outter.size());
  }
}

Métodos do Vector:

void add(int index, Object element)
Inserts the specified element at the specified position in this Vector.
 
boolean add(Object o)
Appends the specified element to the end of this Vector.
 
boolean addAll(Collection c)
Appends all of the elements in the specified Collection to the end of this Vector, in the order that they are returned by the specified Collection's Iterator.
 
boolean addAll(int index, Collection c)
Inserts all of the elements in in the specified Collection into this Vector at the specified position.
 
void addElement(Object obj)
Adds the specified component to the end of this vector, increasing its size by one.
 
int capacity()
Returns the current capacity of this vector.
 void clear()
Removes all of the elements from this Vector.
 
Object clone()
Returns a clone of this vector.
 
boolean contains(Object elem)
Tests if the specified object is a component in this vector.
 
boolean containsAll(Collection c)
Returns true if this Vector contains all of the elements in the specified Collection.
 
void copyInto(Object[] anArray)
Copies the components of this vector into the specified array.
 
Object elementAt(int index)
Returns the component at the specified index.
 
Enumeration elements()
Returns an enumeration of the components of this vector.
 
void ensureCapacity(int minCapacity)
Increases the capacity of this vector, if necessary, to ensure that it can hold at least the number of components specified by the minimum capacity argument.
 
boolean equals(Object o)
Compares the specified Object with this Vector for equality.
 
Object firstElement()
          Returns the first component (the item at index
0) of this vector.  
Object get(int index)
          Returns the element at the specified position in this Vector.
 
int hashCode()
          Returns the hash code value for this Vector.
 
int indexOf(Object elem)
          Searches for the first occurence of the given argument, testing for equality using the
equals method.  
int indexOf(Object elem, int index)
          Searches for the first occurence of the given argument, beginning the search at
index, and testing for equality using the equals method.  
void insertElementAt(Object obj, int index)
          Inserts the specified object as a component in this vector at the specified
index.
boolean isEmpty()
          Tests if this vector has no components.
 
Object lastElement()
          Returns the last component of the vector.
int lastIndexOf(Object elem)
          Returns the index of the last occurrence of the specified object in this vector.
 
int lastIndexOf(Object elem, int index)
          Searches backwards for the specified object, starting from the specified index, and returns an index to it.
 
Object remove(int index)
          Removes the element at the specified position in this Vector.
 
boolean remove(Object o)
          Removes the first occurrence of the specified element in this Vector If the Vector does not contain the element, it is unchanged.
 boolean removeAll(Collection c)
          Removes from this Vector all of its elements that are contained in the specified Collection.
 
void removeAllElements()
          Removes all components from this vector and sets its size to zero.
 
boolean removeElement(Object obj)
          Removes the first (lowest-indexed) occurrence of the argument from this vector.
 
void removeElementAt(int index)
          Deletes the component at the specified index.
protected  
void removeRange(int fromIndex, int toIndex)
          Removes from this List all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.
 
boolean retainAll(Collection c)
          Retains only the elements in this Vector that are contained in the specified Collection.
Object set(int index, Object element)
          Replaces the element at the specified position in this Vector with the specified element.
 
void setElementAt(Object obj, int index)
          Sets the component at the specified
index of this vector to be the specified object.
void setSize(int newSize)
          Sets the size of this vector.
 
int size()
          Returns the number of components in this vector.
 
List subList(int fromIndex, int toIndex)
          Returns a view of the portion of this List between fromIndex, inclusive, and toIndex, exclusive.
 
Object[] toArray()
          Returns an array containing all of the elements in this Vector in the correct order.
Object[] toArray(Object[] a)
          Returns an array containing all of the elements in this Vector in the correct order; the runtime type of the returned array is that of the specified array.
 
String toString()
          Returns a string representation of this Vector, containing the String representation of each element.
 
void trimToSize()
          Trims the capacity of this vector to be the vector's current size.


Vectors Bidimencionais


import java.util.Vector;

public class testeVector {
  public static void main(String args[]) {
    Vector v  = new Vector ();
    v.addElement("A");
    v.addElement("B");

    Vector outter = new Vector();
    outter.addElement(v);

    String s = (String) ((Vector) outter.get(0)).get(0);
   
    System.out.println("Exibe linha 0 coluna 1: "+((Vector) outter.get(0)).get(0));
    System.out.println("Exibe linha 0 coluna 2: "+((Vector) outter.get(0)).get(1));   
    System.out.println("Exibe Vector          : "+outter);
    System.out.println("Exibe o tamanho       : "+outter.size());
  }
}

Nenhum comentário:

Postar um comentário