Estruturas de Dados 2019/2020 (CC1007) - DCC/FCUP

Voltar a Lista de Codigo de Exemplo


(TestArrays.java)

// -----------------------------------------------------------
// Estruturas de Dados 2019/2020 (CC1007) - DCC/FCUP
// http://www.dcc.fc.up.pt/~pribeiro/aulas/edados1920/
// -----------------------------------------------------------
// Exemplo de utilizacao de Arrays
// Ultima alteracao: 04/02/2019
// -----------------------------------------------------------

import java.util.Arrays; // Funcoes Utilitarias de Arrays

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

      // Criacao e erro de sair fora dos limites
      int[] v = new int[4];
      v[0] = 2;
      //v[4] = 5; // ArrayIndexOutOfBoundsException 

      // Inicializacao e impressao
      int[] primes = {2,3,5,7,11,13}; // Cria e inicializa array
      System.out.println(primes);     // Apenas imprime a referĂȘncia
      System.out.println(Arrays.toString(primes)); // Converte para String

      // Comparacao
      int[] a = {1,2,3,4,5};
      int[] b = {1,2,3,4,5};
      if( Arrays.equals(a,b) )
         System.out.println("same contents");

      // Soma de dois arrays
      int[] c = addArrays(a,b);
      System.out.println(Arrays.toString(c));
   }

   // Metodo para somar dois arrays
   public static int[] addArrays (int[] u, int[] v) {
      int[] res = new int[u.length];
      for ( int i = 0 ; i < u.length ; i++ ) 
         res[i] = u[i] + v[i];
      return res;
   }
   
}

(TestMatrixVectorProduct.java)

// -----------------------------------------------------------
// Multiplicacao de matriz por array
// Ultima alteracao: 04/02/2019
// -----------------------------------------------------------

import java.util.Arrays;

class TestMatrixVectorProduct {
   public static void main(String[] args) {
      int[][]  a = {{1,2,3},{4,5,6}};
      int[]    u = {7,8,9};
      int[]    v = matrixVectorMult(a,u);
         
      System.out.println(Arrays.toString(v));
   }
   
   static int[] matrixVectorMult(int[][] a, int[] u) {
      int[] v = new int[a.length];
      for( int i = 0 ; i < v.length ; i++ ) {
         v[i] = 0;
         for( int j = 0 ; j < u.length ; j++ ) 
            v[i] += a[i][j] * u[j];
      }
      return v;
   }
}