Low Array

Low Array

Let’s look at some example programs that show how an array can be used. We’ll start with an old-fashioned procedural version and then show the equivalent objectoriented approach.

$ dart 01_array/low_array.dart
import 'dart:io';

class LowArray {
  List<int> a; // ref to array a

  // Constructor
  LowArray(int size) {
    a = new List<int>(size); // create array (List in Dart)
  }

  // set value
  void setElement(int index, int value) {
    a[index] = value;
  }

  // get value
  int getElement(int index) {
    return a[index];
  }
}

void main(List<String> arguments) {
  LowArray array = new LowArray(100); // create LowArray instance
  int nElement = 0; // number of items in array
  int j; // loop variable

  // Insert 10 items
  array.setElement(0, 77);
  array.setElement(1, 99);
  array.setElement(2, 44);
  array.setElement(3, 55);
  array.setElement(4, 22);
  array.setElement(5, 88);
  array.setElement(6, 11);
  array.setElement(7, 00);
  array.setElement(8, 66);
  array.setElement(9, 33);

  // update number of items in array
  nElement = 10;

  // Display items
  for(j = 0; j < nElement; j++) {
    stdout.write('${array.getElement(j)} ');
  }
  stdout.writeln('');

  // Element Search
  int searchKey = 26;

  // for each element
  for(j = 0; j < nElement; j++) {
    // found item?
    if (array.getElement(j) == searchKey) {
      break;
    }
  }

  if(j == nElement) {
    stdout.writeln("Can't find $searchKey");
  } else {
    stdout.writeln('Found $searchKey');
  }

  // Delete Element with key 55
  for(j = 0; j < nElement; j++) {
    if (array.getElement(j) == 55) {
      break;
    }
  }
  // Higher ones down
  for(int k = j; k < nElement; k++) {
    array.setElement(k, array.getElement(k + 1));
  }
  nElement --; // decrement size


  // Display items
  for(int j = 0; j < nElement; j++) {
    stdout.write('${array.getElement(j)} ');
  }
  stdout.writeln('');

}