segunda-feira, 27 de julho de 2015

Python Dicionários


    Dicionários são muito úteis em Python, muitas vezes dicionários são encontrados em outras linguagens de programações como "memórias associativas" ou "arrays associativos". Os dicionários são indexados por chaves e não possuem uma ordem certa.

    Para criar um dicionário vazio utilizamos a seguinte sintaxe dic ={} , dessa forma criamos um dicionário com o nome dic que não possui nenhum valor, podemos adicionar valores da seguinte forma:


dic = {}

dic["nome"] = "Renan"

   Criamos um dicionário com o valor "Renan" que é indexado pela chave "nome", dessa forma para encontrar o valor preciso usar sua chave, vamos imprimir o valor "Renan" na tela, veja o exemplo.


dic = {}

dic["nome"] = "Renan"

print dic["nome"]


    Podemos utilizar vários tipos como chaves desde que eles sejam imutáveis, podemos sempre utilizar strings e números como chaves, também podemos utilizar tuplas como chaves desde que elas não contenham valores mutáveis. Vejamos alguns exemplos com dicionários.


dic = {"nome":"Renan","numero":1} #podemos criar um dicionário passando os valores

print dic["nome"]

print dic["numero"]

print dic #aqui imprimimos o dicionário o resultado será {'numero': 1, 'nome': 'Renan'}

 
    Utilizando números como chaves:


dic = {}

dic[1] = "um"
dic[2] = "dois"
dic[3] = "três"

print dic[1]

print dic[2]

'''O resultado será
 um
 dois'''

    Podemos também fazer verificações em um dicionário, vamos criar um dicionário como o nome agenda e vamos colocar nomes e números de contatos, depois vamos verificar se o nome consta na agenda (dicionário), caso o contato exista no dicionário vamos mostrar na tela, caso contrário vamos dizer que o contato não existe.


agenda = {"Renan":99443322,"Maria":88774433,"Joao":99112233}

if("Renan" in agenda):
 print "O número do contato eh ", agenda["Renan"]
else:
 print "O contato Renan não existe"
 
'''O número do contato eh  99443322'''

quarta-feira, 22 de julho de 2015

Java como utilizar a Interface Comparable.

    A  Interface Comparable impõe uma total ordenação para os objetos das classes que a implementam, essa ordenação é feita a partir do método compareTo(T o) que deve ser obrigatoriamente implementado após a interface Comparable ser implementada.

    O método compareTo(T o) deverá retornar um valor inteiro sendo -1 quando o objeto que chama o método for menor que o objeto comparado , 0 (zero) quando igual e 1 quando o objeto que chama o método for maior que o objeto comparado.

    Digamos que temos uma classe Pessoa que tem as variáveis nome e idade e queremos organizar os objetos da classe Pessoa em uma lista em ordem de menor idade para maior idade, para isso nossa classe Pessoa deve implementar a interface Comparable, a sintaxe da interface Compable é public interface Comparable<T>, onde T será o objeto a ser comparado, no nosso caso será Pessoa.

Nossa classe ficará assim:

public class Pessoa implements Comparable<Pessoa>{

}


    Quando implementamos uma interface devemos implementar seus métodos no caso da interface Comparable o método que devemos implementar é o compareTo(T o) onde o T é o objeto a ser comparado no nosso caso Pessoa.


public class Pessoa implements Comparable<Pessoa>{

 private String nome;
    private int idade;
  
  public Pessoa(String nome,int idade){
     this.nome = nome; 
     this.idade = idade; 
  }
  
  public int getIdade(){
   return this.idade; 
  }
  public void setCpf(int idade){
   this.idade = idade; 
  }
  
  public String getNome(){
   return this.nome; 
  }
  public void setNome(String nome){
   this.nome = nome; 
  }

 @Override
    public int compareTo(Pessoa pessoa){
      return 0;
    }
}

    Agora tudo que devemos fazer é utilizar os atributos da classe para fazermos a ordenação, no nosso exemplo dizemos que nosso método compareTo() deve retornar -1 quando a idade seja inferior a idade do objeto que está sendo comparado, 0 quando a idade for igual a idade do objeto que está sendo comparado e 1 quando a idade for maior.


 @Override
    public int compareTo(Pessoa pessoa){
      if( this.getIdade()<pessoa.getIdade() ){
        return -1;
      }else if( this.getIdade()==pessoa.getIdade() ){
        return 0;
      }else{
         return 1;
      }
    }

    Agora vamos criar uma classe para testar nosso exemplo, vamos criar sete objetos da classe Pessoa com nomes e idades variadas, depois vamos adicioná-las em um ArrayList e vamos imprimi-los na tela, depois vamos utilizar o método sort da classe Collections para organizar nossos objetos, pois esse método sort utilizará o método compareTo() de cada objeto pessoa dentro do ArrayList para fazer a ordenação, e depois de ordená-los vamos imprimi-los novamente na tela.


import java.util.ArrayList;
import java.util.Collections;


public class MainClass
{
  public static void main(String[] args)
  {
    Pessoa p1 = new Pessoa("Renan",27);
    Pessoa p2 = new Pessoa("Maria",15);
    Pessoa p3 = new Pessoa("Joao",32);
    Pessoa p4 = new Pessoa("Renata",8);
    Pessoa p5= new Pessoa("Joseane",18);
    Pessoa p6 = new Pessoa("Roberto",64);
    Pessoa p7 = new Pessoa("Mario",18);
    
    ArrayList<Pessoa> lista = new ArrayList<Pessoa>();
    lista.add(p1);
    lista.add(p2);
    lista.add(p3);
    lista.add(p4);
    lista.add(p5);
    lista.add(p6);
    lista.add(p7);
    //antes de ordenar por idade
    System.out.println("Lista desordenada");
    for(Pessoa p: lista){
     System.out.println("Nome: "+p.getNome()+" idade: "+p.getIdade()); 
    }
    
    Collections.sort(lista);
    System.out.println("");
    //depois de ordenar
    System.out.println("Lista ordenada por idade");
     for(Pessoa p: lista){
     System.out.println("Nome: "+p.getNome()+" idade: "+p.getIdade()); 
    }
    
  } 
  
}
    O Resultado será o seguinte:

Lista desordenada
Nome: Renan idade: 27
Nome: Maria idade: 15
Nome: Joao idade: 32
Nome: Renata idade: 8
Nome: Joseane idade: 18
Nome: Roberto idade: 64
Nome: Mario idade: 18

Lista ordenada por idade
Nome: Renata idade: 8
Nome: Maria idade: 15
Nome: Joseane idade: 18
Nome: Mario idade: 18
Nome: Renan idade: 27
Nome: Joao idade: 32
Nome: Roberto idade: 64

    Aqui encerro esse artigo! Espero ter ajudado!

terça-feira, 21 de julho de 2015

Comando Switch Case em Java



Comando Switch Case em Java


Assim como o comando if else, o comando switch em Java desempenha uma função condicional, geralmente se utiliza o comando switch quando se tem muitas condições envolvidas, imagine que você quer imprimir um número de um a dez por extenso, poderíamos utilizar os comandos if else porém ficaria muito extenso e complexo para entender vejamos um exemplo utilizando if else.

...

int numero = 2;

 

//aqui utilizaríamos o if else

if(numero==0){

      System.out.println(zero);

}else if(numero==1){

      System.out.println(um);

} else if(numero== 2){

      System.out.println(dois);

}

//e continuaríamos até dez

...

Como vimos acima a quantidade de if else seria enorme levando em consideração que utilizaríamos dez condições no nosso exemplo, imagine então que dentro de cada if else acima tivesse mais condições, ficaria ainda mais difícil de compreender o código, bem e como seria o switch case? E como ele nos ajudaria nesse exemplo acima?
O switch case em Java é bem simples de entender e utilizá-lo, ele recebe um parâmetro e a partir desse parâmetro fazemos comparações utilizando a palavra reservada case, de uma maneira mais fácil de entender, digamos que temos como parâmetro um valor inteiro 2 a partir desse parâmetro faríamos o seguinte, caso o parâmetro seja 0 imprima “zero”, caso seja 1 imprima “um”, caso seja 2 imprima “dois”, vejamos o exemplo abaixo.

...

// aqui inicializamos o switch utilizando uma variável
// com um valor inteiro

int numero = 2;

switch(numero){

      //aqui fazemos a verificação utilizando case

      case 0:

                  System.out.println(zero);

 /* devemos colocar um break em cada condição pois 
    caso contrário o switch vai continuar com a 
    verificação, o break vai parar o switch uma
    vez que entre em uma das condições.*/

      break;

case 1:

System.out.println(um);

break;

case 2:

System.out.println(dois);

break;

//criariamos cases até dez

}//aqui termina o switch

... 

O switch facilita na leitura do código e é bem prático e fácil de usar, vendo o exemplo acima imagine se o parâmetro passado fosse 11 ou -1 o que aconteceria? Exatamente o que você pensou, NADA, pois nenhum dos cases tem 11 ou -1, nesse caso seria justo avisar ao usuário que o que o parâmetro passado não é uma opção válida, e aí? Como faríamos? É fácil para isso utilizamos a palavra reservada default, com ela decidimos o que acontecerá caso nenhuma das alternativas forem válidas, por isso é muito importante utilizar o break em cada condição pois do contrário a condição default será acionada mesmo se o switch entrar em uma condição antes do default.

...

// aqui inicializamos o switch utilizando uma variável 
//com um valor inteiro

int numero = 2;

switch(numero){

      //aqui fazemos a verificação utilizando case

      case 0:

                  System.out.println(zero);

 /* devemos colocar um break em cada condição
    pois caso contrário o switch vai continuar com a 
    verificação, o break vai parar o switch uma
    vez que já encontramos a condição desejada.*/

      break;

case 1:

System.out.println(um);

break;

case 2:

System.out.println(dois);

break;


      //aqui colocaremos nosso valor padrão (default)

      default:

System.out.println(Opção inválida);

      break;

}//aqui termina o switch

... 


Aqui encerro esse artigo sobre switch em Java espero ter ajudado.

Java método substring da classe String

Java método substring da classe String

Descrição

     Retorna uma nova string que é uma substring da string atual (meio enrolado não? mas fica fácil de entender com os exemplos). A substring começa a partir do index do caractere passado por parâmetro e segue até o fim da string atual.

Sintaxe do método


public String substring(int beginIndex)

Exemplo

 "unhappy".substring(2) retorna "happy" //retorna uma string a partir do h que cujo indice é 2
 "Harbison".substring(3) retorna "bison" //retorna uma string a partir do b que cujo indice é 3
 "emptiness".substring(9) retorna "" //(uma string vazia)

Java método replace da classe String

Java método replace da classe String

Descrição

    Retorna uma nova String resultante da substituição do velho caractere pelo novo caractere, caso o caractere velho não seja encontrado uma nova referência idêntica a String passada será retornada. 

Sintaxe do método

public String replace(char oldChar,char newChar)

Exemplo

String nome = "Merie";

nome.replace("e","a"); //retorna maria

nome = "Paulo";

nome.replace("o","a"); // retorna Paula

nome = "Eduardo";

nome.replace("s","a"); // retorna Eduardo (pois não encontra s na String)