Creating an Array: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 106: Line 106:
# You can also create a sequential array from a range using the 'splat' operator:
# You can also create a sequential array from a range using the 'splat' operator:
array = [*0..3]
array = [*0..3]
# or use the .to_a method for Ranges
array = (0..3).to_a
#=> [0,1,2,3]
#=> [0,1,2,3]
Line 111: Line 113:
# This lets us create the above programmatically:
# This lets us create the above programmatically:
array = [*0..3].map {|i| [i] * 6}
array = [*0..3].map {|i| [i] * 6}
# or use the .map (.collect which is the same) method for Ranges directly
# note also that arrays of length 6 with a default element are created using Array.new
array = (0..3).map {|i| Array.new(6,i)}
#=> [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3]]
#=> [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3]]

Revision as of 19:41, 22 January 2007

Task
Creating an Array
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to create an array.

mIRC

Interpeter: mIRC Script Editor Libraries: mArray Snippet

alias creatmearray { .echo -a $array_create(MyArray, 5, 10) }

Visual Basic 2005.Net

Dim myArray as new ArrayList
Dim myArray2 as new ArrayList = { "Item1", "Item2" }

Quick Basic

Interpeter: QB 4.5 or PB 7.1 Libraries: None are needed

 ' $DYNAMIC
 DIM SHARED myArray(-10 TO 10, 10 TO 30) AS STRING
 REDIM SHARED myArray(20, 20) AS STRING
 myArray(1,1) = "Item1"
 myArray(1,2) = "Item2"

Javascript

 var myArray = new Array();
 var myArray2 = new Array("Item1","Item2");
 var myArray3 = ["Item1", "Item2"];

3DS Max 8 - MaxScript

 myArray = #()
 myArray2 = #("Item1", "Item2")


Python

Interpeter: Python 2.3, 2.4, 2.5 Libraries: None are needed

Array=[
       [0,0,0,0,0,0],
       [1,1,1,1,1,1],
       [2,2,2,2,2,2],
       [3,3,3,3,3,3]
      ]
#You would call the array by this code. This will call the 3rd 1 on the second list
Array[1][3]}

Alternatively you can create it programmatically with a list comprehension:

Array = [ [i]*6 for i in range(4) ]

Create an empty array:

Array = []

Perl

Interpeter: Perl Libraries: None are needed

use vars qw{ @Array };
@Array=(
        [0,0,0,0,0,0],
        [1,1,1,1,1,1],
        [2,2,2,2,2,2],
        [3,3,3,3,3,3]
      );
#You would call the array by this code. This will call the 3rd 1 on the second list
print $Array[1][3];
 # Alternative:
 my @array_using_qw = qw/coffee sugar cream/;
 # Alternative:
 my @Array3 = ();
 push @Array3,   "Item1";
 push @Array3,   "Item2";
 $Array3[2]    = "Item3";
 $Array3[3][0] = "Item4";
 @Array = ('This', 'That', 'And', 'The', 'Other');
 $ArrayRef = ['This', 'That', 'And', 'The', 'Other'];
 print $ArrayRef->[2]; # would print "And"

PHP

$array = array(
               array(0, 0, 0, 0, 0, 0),
               array(1, 1, 1, 1, 1, 1),
               array(2, 2, 2, 2, 2, 2),
               array(3, 3, 3, 3, 3, 3)
         );
#You would call the array by this code. This will call the 3rd 1 on the second list
echo $array[1][3];

Ruby

array = [
  [0, 0, 0, 0, 0, 0],
  [1, 1, 1, 1, 1, 1],
  [2, 2, 2, 2, 2, 2],
  [3, 3, 3, 3, 3, 3]
]

# You would call the array by this code. This will call the 3rd 1 on the second list
array[1][3]
# You can also create a sequential array from a range using the 'splat' operator:
array = [*0..3]
# or use the .to_a method for Ranges
array = (0..3).to_a

#=> [0,1,2,3]

# This lets us create the above programmatically:
array = [*0..3].map {|i| [i] * 6}
# or use the .map (.collect which is the same) method for Ranges directly
# note also that arrays of length 6 with a default element are created using Array.new
array = (0..3).map {|i| Array.new(6,i)}

#=> [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3]]

Ada

Compiler: GCC 4.1.2

type Arr is array (Positive range <>) of Integer;
Uninitialized : Arr (1 .. 10);
Initialized_1 : Arr (1 .. 20) := (others => 1);
Initialized_2 : Arr := (1 .. 30 => 2);
Const         : constant Arr := (1 .. 10 => 1, 11 .. 20 => 2, 21 | 22 => 3);

Template:Array operation

OCaml

let nbItems = 5 and initialValue = 0 in
   make_vect nbItems initialValue


Java

For example for an array of 10 int values:

 int[] intArray = new int[10];

Creating an array of Strings:

 String[] s = {"hello" , "World" };

C

Compiler: GCC, MSVC, BCC, Watcom

Libraries: None are needed

 // Dynamic
 int n = 10 * sizeof(int);
 int *myArray = (int*)malloc(n);
 if(myArray != NULL)
 {
   memset(myArray, 0, n);
   myArray[0] = 1;
   myArray[1] = 2;
   free(myArray);
   myArray = NULL;
 }

Libraries: None are needed

 // Static
 int myArray2[10] = { 1, 2, 0}; /* 3..9 := 0 */

C++

Compiler: GCC, MSVC, BCC, Watcom

Libraries: None are needed

 // Dynamic
 const int n = 10;
 int* myArray = new int[n];
 if(myArray != NULL)
 {
   myArray[0] = 1;
   myArray[1] = 2;
   delete[] myArray;
   myArray = NULL;
 }

Libraries: None are needed

 // Static
 int myArray2[10] = { 1, 2, 0}; /* 3..9 := 0 */

Libraries: STL

 // STL
 std::vector<int> myArray3(10);
 myArray3.push_back(1);
 myArray3.push_back(2);

Libraries: Qt

 // Qt
 QVector<int> myArray4(10);
 myArray4.push_back(1);
 myArray4.push_back(2);

Libraries: MFC

 // MFC
 CArray<int,int> myArray5(10);
 myArray5.Add(1);
 myArray5.Add(2);

C#

Example of array of 10 int types:

 int[] numbers = new int[10];

Example of array of 3 string types:

 string[] words = { "these", "are", "arrays" };

You can also declare the size of the array and initialize the values at the same time:

 int[] more_numbers = new int[3]{ 21, 14 ,63 };


For Multi-Deminsional arrays you delcare them the same except for a comma in the type declaration.

The following creates a 3x2 int matrix

 int[,] number_matrix = new int[3][2];

As with the previous examples you can also initialize the values of the array, the only difference being each row in the matrix must be enclosed in its own braces.

 string[,] string_matrix = { {"I","swam"}, {"in","the"}, {"freezing","water"} };

or

 string[,] funny_matrix = new string[2][2]{ {"clowns", "are"} , {"not", "funny"} };