プãƒã‚°ãƒ©ãƒ 言語 é…列
é…列ã®åŸºåº•クラス
int[][] array = new int[][]{
  new int[]{},
  new int[]{1},
  new int[]{2,3}
};
object o = array;
é…列をå«ã‚€å…¨ã¦ã®åž‹ã¯objectを継承ã—ã¦ã„ã‚‹ã®ã§æ ¼ç´å¯èƒ½
int i = ((int[][])o)[2][1];
// i : 3
  new int[]{},
  new int[]{1},
  new int[]{2,3}
};
object o = array;
é…列をå«ã‚€å…¨ã¦ã®åž‹ã¯objectを継承ã—ã¦ã„ã‚‹ã®ã§æ ¼ç´å¯èƒ½
int i = ((int[][])o)[2][1];
// i : 3
int[][] array = new int[][]{{},{1},{2,3}};
Object o = array;
é…列をå«ã‚€å…¨ã¦ã®åž‹ã¯objectを継承ã—ã¦ã„ã‚‹ã®ã§æ ¼ç´å¯èƒ½
int i = ((int[][])o)[2][1];
// i : 3
Object o = array;
é…列をå«ã‚€å…¨ã¦ã®åž‹ã¯objectを継承ã—ã¦ã„ã‚‹ã®ã§æ ¼ç´å¯èƒ½
int i = ((int[][])o)[2][1];
// i : 3
$ary = [];
let ary = [];
é…åˆ—ã®æ“作
æ–‡å—列→é…åˆ—å¤‰æ› / æ–‡å—列â†é…列変æ›
string samplestr = "1,2,3,4,5";
string[] ary = samplestr1.Split(new char[] {','});
myAray[1] : "2"
string samplestr = @"aaaa@@bbb,,@@cc dddd,eee f";
string[] ary = samplestr.Split(
 separator: new string[]{ ",", " ", "@@" },
 options: StringSplitOptions.RemoveEmptyEntries);
 
string[] ary = samplestr.Split(
 separator: new string[] { ",", " ", "@@" },
 options: StringSplitOptions.None);
 
æ–‡å—列ã§ãªãã€æ–‡å—ã§åˆ†å‰²ã™ã‚‹å ´åˆã€€
string[] ary = samplestr.Split(
 separator: new [] { ',', ' ', '@' },
 options: StringSplitOptions.~);
string[] ary = samplestr1.Split(new char[] {','});
myAray[1] : "2"
string samplestr = @"aaaa@@bbb,,@@cc dddd,eee f";
string[] ary = samplestr.Split(
 separator: new string[]{ ",", " ", "@@" },
 options: StringSplitOptions.RemoveEmptyEntries);
 
string[] ary = samplestr.Split(
 separator: new string[] { ",", " ", "@@" },
 options: StringSplitOptions.None);
 
æ–‡å—列ã§ãªãã€æ–‡å—ã§åˆ†å‰²ã™ã‚‹å ´åˆã€€
string[] ary = samplestr.Split(
 separator: new [] { ',', ' ', '@' },
 options: StringSplitOptions.~);
Dim samplestr As String = "1,2,3,4,5"
Dim myAray() As String = samplestr.Split(",")
'myAray(1):2
Dim myAray() As String = samplestr.Split(",")
'myAray(1):2
Dim ReturnValue() As String
' "," を区切りã¨ã—ã¦åˆ†ã‘ã‚‹
ReturnValue() = Split("æ–‡å—列1,æ–‡å—列2,æ–‡å—列3", ",")
ReturnValue(0) = "æ–‡å—列1"
ReturnValue(1) = "æ–‡å—列2"
ReturnValue(2) = "æ–‡å—列3"
' "," を区切りã¨ã—ã¦åˆ†ã‘ã‚‹
ReturnValue() = Split("æ–‡å—列1,æ–‡å—列2,æ–‡å—列3", ",")
ReturnValue(0) = "æ–‡å—列1"
ReturnValue(1) = "æ–‡å—列2"
ReturnValue(2) = "æ–‡å—列3"
var Text = "A,B,C"
var Elm = Text.split(",");
⇒ Elm[0] : "A"
⇒ Elm[1] : "B"
⇒ Elm[2] : "C"
var Elm = Text.split(",");
⇒ Elm[0] : "A"
⇒ Elm[1] : "B"
⇒ Elm[2] : "C"
æ–‡å—列→é…列
$ary = explode(',', 'aaa,bbb,ccc,ddd');
$ary[2]:ccc
é…列→文å—列
$list = [1, 3, 5];
print( implode('_', $list) );
→1_3_5
$list = [
 '1' => 'A1',
 '3' => 'A3',
 '5' => 'A5',
];
print( implode('_', $list) );
→A1_A3_A5
ã‚ーã§ã¯ãªãã€å€¤ãŒé€£çµã•れる
$ary = explode(',', 'aaa,bbb,ccc,ddd');
$ary[2]:ccc
é…列→文å—列
$list = [1, 3, 5];
print( implode('_', $list) );
→1_3_5
$list = [
 '1' => 'A1',
 '3' => 'A3',
 '5' => 'A5',
];
print( implode('_', $list) );
→A1_A3_A5
ã‚ーã§ã¯ãªãã€å€¤ãŒé€£çµã•れる
split
æŒ‡å®šã®æ–‡å—åˆ—ã‚’ã€æŒ‡å®šã®æ–‡å—ã§åˆ†å‰²ã—ã¦é…åˆ—ã«æ ¼ç´ã™ã‚‹
#æŒ‡å®šã®æ–‡å—列(分割対象)
my $str= "a/b/c/d/e";
#æŒ‡å®šã®æ–‡å—ã§åˆ†å‰²ã™ã‚‹å ´åˆ
my @ary = split('/' , $str);
#æ£è¦è¡¨ç¾ãƒªãƒ†ãƒ©ãƒ«ã§åˆ†å‰²ã™ã‚‹å ´åˆ
my @ary = split(/\// , $str);
#「/ã€ã‚’å¼•æ•°ã§æŒ‡å®šã™ã‚‹å ´åˆã¯ã€Œ\ã€ã‚’付ã‘ã‚‹(エスケープ)
#my @ary = split(/// , $str); ã¯ãƒ€ãƒ¡
#指定数ã®ã¿è¦ç´ ã«åˆ†å‰²ã™ã‚‹ã€‚残りã¯å˜ä¸€ã®è¦ç´
my @ary = split('/' , $str, 3);
⇒ $ary[0] : a
⇒ $ary[1] : b
⇒ $ary[2] : c/d/e
qw演算å
「 (スペース)ã€ã§åŒºåˆ‡ã‚‰ã‚ŒãŸæ–‡å—ã‚’é…åˆ—ã«æ ¼ç´ã™ã‚‹
my @ary = qw( 1 2 3 );
⇒ @ary = (1,2,3);ã¨åŒã˜
区切り文å—(デミリタ)ã«ã¯ã©ã‚“ãªæ–‡å—ã§ã‚‚使用å¯ã€Œqw//ã€ã€ã€Œwq{}ã€ã€ã€Œqw[]ã€ã€ã€Œqw<>ã€ä»–
my @ary = qw/ 1 2 3 /;
my @ary = qw{ 1 2 3 };
my @ary = qw[ 1 2 3 ];
my @ary = qw< 1 2 3 >;
join
※é…列をçµåˆã™ã‚‹
my @ary = (1,2,3);
my @str = join('-' , @ary);
⇒ @str : 1-2-3
メールアドレスã«ãŠã„ã¦ã€ãƒãƒ¼ã‚«ãƒ«ãƒ‘ートã¨ãƒ‰ãƒ¡ã‚¤ãƒ³åを「@ã€ã§çµåˆã™ã‚‹
(é…列ã§ãªãç¬¬äºŒãƒ»ç¬¬ä¸‰å¼•æ•°ã«æ–‡å—列を渡ã™ã‚„り方もå¯)
my $local = "aaa";
my $domain = "test.com";
my $adress = join("@" , $local , $domain);
⇒ aaa@test.com
#改行を挟む
my $str = join('\n' , @str);
æŒ‡å®šã®æ–‡å—åˆ—ã‚’ã€æŒ‡å®šã®æ–‡å—ã§åˆ†å‰²ã—ã¦é…åˆ—ã«æ ¼ç´ã™ã‚‹
#æŒ‡å®šã®æ–‡å—列(分割対象)
my $str= "a/b/c/d/e";
#æŒ‡å®šã®æ–‡å—ã§åˆ†å‰²ã™ã‚‹å ´åˆ
my @ary = split('/' , $str);
#æ£è¦è¡¨ç¾ãƒªãƒ†ãƒ©ãƒ«ã§åˆ†å‰²ã™ã‚‹å ´åˆ
my @ary = split(/\// , $str);
#「/ã€ã‚’å¼•æ•°ã§æŒ‡å®šã™ã‚‹å ´åˆã¯ã€Œ\ã€ã‚’付ã‘ã‚‹(エスケープ)
#my @ary = split(/// , $str); ã¯ãƒ€ãƒ¡
#指定数ã®ã¿è¦ç´ ã«åˆ†å‰²ã™ã‚‹ã€‚残りã¯å˜ä¸€ã®è¦ç´
my @ary = split('/' , $str, 3);
⇒ $ary[0] : a
⇒ $ary[1] : b
⇒ $ary[2] : c/d/e
qw演算å
「 (スペース)ã€ã§åŒºåˆ‡ã‚‰ã‚ŒãŸæ–‡å—ã‚’é…åˆ—ã«æ ¼ç´ã™ã‚‹
my @ary = qw( 1 2 3 );
⇒ @ary = (1,2,3);ã¨åŒã˜
区切り文å—(デミリタ)ã«ã¯ã©ã‚“ãªæ–‡å—ã§ã‚‚使用å¯ã€Œqw//ã€ã€ã€Œwq{}ã€ã€ã€Œqw[]ã€ã€ã€Œqw<>ã€ä»–
my @ary = qw/ 1 2 3 /;
my @ary = qw{ 1 2 3 };
my @ary = qw[ 1 2 3 ];
my @ary = qw< 1 2 3 >;
join
※é…列をçµåˆã™ã‚‹
my @ary = (1,2,3);
my @str = join('-' , @ary);
⇒ @str : 1-2-3
メールアドレスã«ãŠã„ã¦ã€ãƒãƒ¼ã‚«ãƒ«ãƒ‘ートã¨ãƒ‰ãƒ¡ã‚¤ãƒ³åを「@ã€ã§çµåˆã™ã‚‹
(é…列ã§ãªãç¬¬äºŒãƒ»ç¬¬ä¸‰å¼•æ•°ã«æ–‡å—列を渡ã™ã‚„り方もå¯)
my $local = "aaa";
my $domain = "test.com";
my $adress = join("@" , $local , $domain);
⇒ aaa@test.com
#改行を挟む
my $str = join('\n' , @str);
é…列ã®ã‚³ãƒ”ー
clone()
é…列ã‹ã‚‰é…列ã¸å…¨è¦ç´ をコピー
é…列åŒå£«ã®è¦ç´ æ•°ã¯ç•°ãªã£ã¦ã„ã¦ã‚‚OK
int[] before = new int[]{5,5,5};
int[] after = before.clone();
⇒after {5,5,5}
System.arraycopy()
é…列ã‹ã‚‰é…åˆ—ã¸æŒ‡å®šã®è¦ç´ をコピー
é…列åŒå£«ã®è¦ç´ æ•°ã¯åŒã˜
int[] before = new int[]{5,5,5};
int[] after = new int[3];
//System.arraycopy(src, srcPos, dest, destPos, length)
System.arraycopy(before, 1, after, 1, 2);
before {5,5,5}
index:1ã‹ã‚‰2æ–‡å—をコピー↓
↓
after {0,0,0}
index:1ã‹ã‚‰2æ–‡å—ã¸ã‚³ãƒ”ー↓
↓
after {0,5,5}
é…列ã‹ã‚‰é…列ã¸å…¨è¦ç´ をコピー
é…列åŒå£«ã®è¦ç´ æ•°ã¯ç•°ãªã£ã¦ã„ã¦ã‚‚OK
int[] before = new int[]{5,5,5};
int[] after = before.clone();
⇒after {5,5,5}
System.arraycopy()
é…列ã‹ã‚‰é…åˆ—ã¸æŒ‡å®šã®è¦ç´ をコピー
é…列åŒå£«ã®è¦ç´ æ•°ã¯åŒã˜
int[] before = new int[]{5,5,5};
int[] after = new int[3];
//System.arraycopy(src, srcPos, dest, destPos, length)
System.arraycopy(before, 1, after, 1, 2);
before {5,5,5}
index:1ã‹ã‚‰2æ–‡å—をコピー↓
↓
after {0,0,0}
index:1ã‹ã‚‰2æ–‡å—ã¸ã‚³ãƒ”ー↓
↓
after {0,5,5}
'é…列コピー
Dim Before() As Integer
Dim After() As Integer
For elmCnt = 0 To UBound(Before) – 1
  After(elmCnt) = Before(elmCnt)
Next elmCnt
Variantåž‹ã®é…列ã§ã‚れã°
After = Before
ã‚‚å¯ã€‚
ã—ã‹ã—é…ã„。
Dim Before() As Integer
Dim After() As Integer
For elmCnt = 0 To UBound(Before) – 1
  After(elmCnt) = Before(elmCnt)
Next elmCnt
Variantåž‹ã®é…列ã§ã‚れã°
After = Before
ã‚‚å¯ã€‚
ã—ã‹ã—é…ã„。
「リストã®ã‚³ãƒ”ーã€å‚ç…§
サブルーãƒãƒ³ã¸ã®é…列渡ã—
é…列→é…列
int ary[] = { 1, 2, 3, 4, 5 };
int ret = fnPlus(ary);
ret:15
int fnPlus(int p[])
{
 int sum = 0;
 for (int i = 0; i < 5; i++)
 {
  sum += p[i];
 }
 return sum;
}
é…列→ãƒã‚¤ãƒ³ã‚¿
int ret = fnPlus(ary);
ret:15
int fnPlus(int *p)
{
 é…列ã®å…ˆé アドレスをå–å¾—
 p = &ary[0];
 
 int sum = 0;
 for (int i = 0; i < 5; i++)
 {
  sum += p[i];
 }
 return sum;
}
int ary[] = { 1, 2, 3, 4, 5 };
int ret = fnPlus(ary);
ret:15
int fnPlus(int p[])
{
 int sum = 0;
 for (int i = 0; i < 5; i++)
 {
  sum += p[i];
 }
 return sum;
}
é…列→ãƒã‚¤ãƒ³ã‚¿
int ret = fnPlus(ary);
ret:15
int fnPlus(int *p)
{
 é…列ã®å…ˆé アドレスをå–å¾—
 p = &ary[0];
 
 int sum = 0;
 for (int i = 0; i < 5; i++)
 {
  sum += p[i];
 }
 return sum;
}
ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã«ã‚ˆã‚‹é…列æ“作
通常é…列
int array[5] = { 1, 2, 3, 4, 5 };
arrayã«é…列ã®å…ˆé ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æ ¼ç´
int ret;
ret = array[0];
ret = *array;
ret:1
ret = array[1];
ret = *(array + 1);
ret:2
ret = fnPlus(array, 5);
ret:15
ret = fnPlus(&array[0], 5);
é…列ã®å…ˆé アドレスを渡ã™
ret:15
ãƒ¡ãƒ¢ãƒªé ˜åŸŸã®å‹•的確ä¿
ãƒã‚¤ãƒ³ã‚¿å¤‰æ•°ï¼špã«é…列ã®å…ˆé ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æ ¼ç´
int *p = new int[5]{ 1, 2, 3, 4, 5 };
ret = *(p + 1);
ret:2
ret = *(p + 2);
ret:3
ret = fnPlus(p, 5);
ret:15
delete p;
int fnPlus(int *p, int elmCnt)
{
 int sum = 0;
 for (int i = 0; i < elmCnt; i++)
 {
  sum += *(p + i);
 }
 return sum;
}
int array[5] = { 1, 2, 3, 4, 5 };
arrayã«é…列ã®å…ˆé ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æ ¼ç´
int ret;
ret = array[0];
ret = *array;
ret:1
ret = array[1];
ret = *(array + 1);
ret:2
ret = fnPlus(array, 5);
ret:15
ret = fnPlus(&array[0], 5);
é…列ã®å…ˆé アドレスを渡ã™
ret:15
ãƒ¡ãƒ¢ãƒªé ˜åŸŸã®å‹•的確ä¿
ãƒã‚¤ãƒ³ã‚¿å¤‰æ•°ï¼špã«é…列ã®å…ˆé ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æ ¼ç´
int *p = new int[5]{ 1, 2, 3, 4, 5 };
ret = *(p + 1);
ret:2
ret = *(p + 2);
ret:3
ret = fnPlus(p, 5);
ret:15
delete p;
int fnPlus(int *p, int elmCnt)
{
 int sum = 0;
 for (int i = 0; i < elmCnt; i++)
 {
  sum += *(p + i);
 }
 return sum;
}
è¦ç´ ã®æ“作
åˆæœŸåŒ–・è¦ç´ 指定
int[] myInt = {1,2};
myInt[0] = 1;
myInt[1] = 2;
myInt[2] = 3; ⇒エラー
var x1 = myInt.First();
var x2 = myInt.Last();
var x3 = myInt.Min();
var x4 = myInt.Max();
var x5 = myInt.Count();
※é…列ã¯å„IEnumerable拡張メソッドを使用å¯èƒ½
「プãƒã‚°ãƒ©ãƒ 言語 LINQ.Enumerableã€å‚ç…§
型推論を用ã„ãŸé…列
var ary = new[] { 1, 2, 3, 4, 5 };
var ary = new[]
{
 new[] { 1,2,3 },
 new[] { 1 },
 new[] { 1,2 }
};
匿åクラスを用ã„ãŸé…列
var ary = new[]
{
 new { x = 1, y = 1 },
 new { x = 2, y = 1 },
 new { x = 3, y = 1 }
};
myInt[0] = 1;
myInt[1] = 2;
myInt[2] = 3; ⇒エラー
var x1 = myInt.First();
var x2 = myInt.Last();
var x3 = myInt.Min();
var x4 = myInt.Max();
var x5 = myInt.Count();
※é…列ã¯å„IEnumerable拡張メソッドを使用å¯èƒ½
「プãƒã‚°ãƒ©ãƒ 言語 LINQ.Enumerableã€å‚ç…§
型推論を用ã„ãŸé…列
var ary = new[] { 1, 2, 3, 4, 5 };
var ary = new[]
{
 new[] { 1,2,3 },
 new[] { 1 },
 new[] { 1,2 }
};
匿åクラスを用ã„ãŸé…列
var ary = new[]
{
 new { x = 1, y = 1 },
 new { x = 2, y = 1 },
 new { x = 3, y = 1 }
};
int myArray1[] = { 1, 2, 3};
// myArray[0]:1
// myArray[1]:2
// myArray[2]:3
// int myArray[3] = { 1, 2, 3, 4 };
// エラー
int myArray2[3] = { 1, 2 };
// myArray[0]:1
// myArray[1]:2
// myArray[2]:0
for each (int var in myArray2)
{
  Console::WriteLine(var);
  // → 1 2 0
};
// é…列全体ã®ãƒã‚¤ãƒˆæ•°
int size = sizeof(myArray2);
// 12
// è¦ç´ ã®ãƒã‚¤ãƒˆæ•°
int size = sizeof(myArray2[0]);
// 4
// è¦ç´ æ•°
int size = sizeof(myArray2) / sizeof(myArray2[0]);
// 3
マクãƒã‚’使用
wchar_t myChar1[] = L"VisualC++";
wchar_t *myChar2 = L"VisualC#";
int elmCnt;
elmCnt = _countof(myChar1);
→10
終端文å—(\0)ã‚’å«ã‚“ã è¦ç´ æ•°
elmCnt = _countof(myChar2);
コンパイルエラー
é…列ã—ã‹å¼•æ•°ã«æŒ‡å®šã§ããªã„。
// myArray[0]:1
// myArray[1]:2
// myArray[2]:3
// int myArray[3] = { 1, 2, 3, 4 };
// エラー
int myArray2[3] = { 1, 2 };
// myArray[0]:1
// myArray[1]:2
// myArray[2]:0
for each (int var in myArray2)
{
  Console::WriteLine(var);
  // → 1 2 0
};
// é…列全体ã®ãƒã‚¤ãƒˆæ•°
int size = sizeof(myArray2);
// 12
// è¦ç´ ã®ãƒã‚¤ãƒˆæ•°
int size = sizeof(myArray2[0]);
// 4
// è¦ç´ æ•°
int size = sizeof(myArray2) / sizeof(myArray2[0]);
// 3
マクãƒã‚’使用
wchar_t myChar1[] = L"VisualC++";
wchar_t *myChar2 = L"VisualC#";
int elmCnt;
elmCnt = _countof(myChar1);
→10
終端文å—(\0)ã‚’å«ã‚“ã è¦ç´ æ•°
elmCnt = _countof(myChar2);
コンパイルエラー
é…列ã—ã‹å¼•æ•°ã«æŒ‡å®šã§ããªã„。
Dim myInt() As Integer = {1, 2}
myInt(0) = 1
myInt(1) = 2
myInt(2) = 3 ⇒エラー
Dim x1 As Integer = myInt.First()
Dim x2 As Integer = myInt.Last()
Dim x3 As Integer = myInt.Max()
Dim x4 As Integer = myInt.Min()
Dim x5 As Integer = myInt.Count()
myInt(0) = 1
myInt(1) = 2
myInt(2) = 3 ⇒エラー
Dim x1 As Integer = myInt.First()
Dim x2 As Integer = myInt.Last()
Dim x3 As Integer = myInt.Max()
Dim x4 As Integer = myInt.Min()
Dim x5 As Integer = myInt.Count()
Dim MyArray(3) As String
Dim MyArray(2 To 5) As String
MyArray(0) = "A"
MyArray(1) = "B"
MyArray(2) = "C"
MyArray(3) = "D" â†ã‚¨ãƒ©ãƒ¼
Dim myAry() As Integer
Dim elmCnt As Integer
elmCnt = UBound(myAry)
'実行時エラー
ReDim myAry(0)
elmCnt = UBound(myAry)
elmCnt:0
Dim myAry() As Variant
Dim elmCnt As Integer
myAry() = Array(1, 2, 3, 4, 5)
elmCnt = UBound(myAry)
elmCnt:4
Dim MyArray(2 To 5) As String
MyArray(0) = "A"
MyArray(1) = "B"
MyArray(2) = "C"
MyArray(3) = "D" â†ã‚¨ãƒ©ãƒ¼
Dim myAry() As Integer
Dim elmCnt As Integer
elmCnt = UBound(myAry)
'実行時エラー
ReDim myAry(0)
elmCnt = UBound(myAry)
elmCnt:0
Dim myAry() As Variant
Dim elmCnt As Integer
myAry() = Array(1, 2, 3, 4, 5)
elmCnt = UBound(myAry)
elmCnt:4
int[] array = new int[3];
array[0] = 5;
array[1] = 5;
array[2] = 5;
array[3] = 5; ⇒ 実行時エラー
int array[] = new int[3]; ã‚‚å¯
宣言ã¨åŒæ™‚ã«è¦ç´ ã‚’è¨å®š
int array[] = new int[]{5,5,5};
int array[] = {5,5,5};
array[0] = 5;
array[1] = 5;
array[2] = 5;
array[3] = 5; ⇒ 実行時エラー
int array[] = new int[3]; ã‚‚å¯
宣言ã¨åŒæ™‚ã«è¦ç´ ã‚’è¨å®š
int array[] = new int[]{5,5,5};
int array[] = {5,5,5};
//方法â‘
var strTest = new Array(3);
strTest[0] = 'test1';
strTest[1] = 'test2';
strTest[2] = 'test3';
//方法②
var strTest = new Array('test1', 'test2', 'test3');
var strTest = new Array(3);
strTest[0] = 'test1';
strTest[1] = 'test2';
strTest[2] = 'test3';
//方法②
var strTest = new Array('test1', 'test2', 'test3');
è¦ç´ 指定追åŠ
$ary[0] = '1番目è¦ç´ ';
$ary[1] = '2番目è¦ç´ ';
$ary[2] = '3番目è¦ç´ ';
range()関数利用
$ary = [1, 2, 3];  → 1, 2, 3
$ary = array(1, 2, 3);
$ary = range(1, 5);  → 1, 2, 3, 4, 5
$ary = range(1, 10, 2);  → 1, 3, 5, 7, 9
$ary = range('a', 'f');  → 'a', 'b', 'c', 'd', 'e', 'f'
$ary = array_fill(0, 3, 'foo');  → "foo", "foo", "foo"
$ary = array_pad(array(), 3, 'foo');  → "foo", "foo", "foo"
é…列判定
if (is_array($ary)) echo 'é…列ã§ã™';
ç”¨ç´ æ•°
$cnt = count($ary);
$ary[0] = '1番目è¦ç´ ';
$ary[1] = '2番目è¦ç´ ';
$ary[2] = '3番目è¦ç´ ';
range()関数利用
$ary = [1, 2, 3];  → 1, 2, 3
$ary = array(1, 2, 3);
$ary = range(1, 5);  → 1, 2, 3, 4, 5
$ary = range(1, 10, 2);  → 1, 3, 5, 7, 9
$ary = range('a', 'f');  → 'a', 'b', 'c', 'd', 'e', 'f'
$ary = array_fill(0, 3, 'foo');  → "foo", "foo", "foo"
$ary = array_pad(array(), 3, 'foo');  → "foo", "foo", "foo"
é…列判定
if (is_array($ary)) echo 'é…列ã§ã™';
ç”¨ç´ æ•°
$cnt = count($ary);
ary = (1,2,3)
print(ary) #(1,2,3)
print(ary[0]) #1
æ–‡å—列をé…列ã¨è¦‹ãªã™
s = 'ABCD'[0]
A
print(ary) #(1,2,3)
print(ary[0]) #1
æ–‡å—列をé…列ã¨è¦‹ãªã™
s = 'ABCD'[0]
A
※変数ã«ã€Œ@ã€ã‚’付ã‘る。arrayã®ã€Œaã€
@x[0] = 1;
@x[1] = 'aaa';
print "@[1]\n";
⇒aaa
@x = (1, 'two');
@x[2] = '3′;
@x[3..4] = ('four', 'five');
print "@x\n";
print "@x[1..3]\n";
⇒1 two 3 four five
⇒two 3 four
最大Index値ã€è¦ç´ æ•°
「#ã€ã‚’付ã‘ã‚‹
my @ary = (1,2,3);
my $cnt = $#ary;
⇒2 (Index値)
何も付ã‘ãªã„
my @ary = (1,2,3);
my $cnt = @ary;
⇒3 (è¦ç´ æ•°)
「scalarã€ã‚’付ã‘ã‚‹
my @ary = (1,2,3);
my $cnt = scalar @x
⇒3 (è¦ç´ æ•°)
é…列的代入
( $year, $month, $day) = (1978, 8, 4);
print $year\n";
print $month\n";
print $day\n";
⇒1978
⇒8
⇒4
@x[0] = 1;
@x[1] = 'aaa';
print "@[1]\n";
⇒aaa
@x = (1, 'two');
@x[2] = '3′;
@x[3..4] = ('four', 'five');
print "@x\n";
print "@x[1..3]\n";
⇒1 two 3 four five
⇒two 3 four
最大Index値ã€è¦ç´ æ•°
「#ã€ã‚’付ã‘ã‚‹
my @ary = (1,2,3);
my $cnt = $#ary;
⇒2 (Index値)
何も付ã‘ãªã„
my @ary = (1,2,3);
my $cnt = @ary;
⇒3 (è¦ç´ æ•°)
「scalarã€ã‚’付ã‘ã‚‹
my @ary = (1,2,3);
my $cnt = scalar @x
⇒3 (è¦ç´ æ•°)
é…列的代入
( $year, $month, $day) = (1978, 8, 4);
print $year\n";
print $month\n";
print $day\n";
⇒1978
⇒8
⇒4
ä¸¦ã³æ›¿ãˆ(è‡ªç„¶é †åº)
è‡ªç„¶é †åºï¼šæ•°å—ã€ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ç‰
public static void main(String[] args) {
 Integer[] ary1 = {3, 1, 2};
 Arrays.sort(ary1);
 →1 2 3
 Object[] ary2 = { new String("aa"), new Integer(1), "5", 0};
 Arrays.sort(ary2); →実行時エラー
}
 Integer[] ary1 = {3, 1, 2};
 Arrays.sort(ary1);
 →1 2 3
 Object[] ary2 = { new String("aa"), new Integer(1), "5", 0};
 Arrays.sort(ary2); →実行時エラー
}
ary = (2, 5, 3.14, 1, -7)
#æ˜‡é †
ary.sort()
print(ary)
# (-7, 1, 2, 3.14, 5)
#ASCIIコード(大文å—ãŒå…ˆ)æ˜‡é †
ary = ('elephant', 'Dog', 'cat')
ary.sort()
print(ary)
# ('Dog', 'cat', 'elephant')
#ASCIIコード(大文å—ãŒå…ˆ)é™é †
ary.sort(reverse=True)
print(ary)
# ('elephant', 'cat', 'Dog')
#ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆæ˜‡é †(è¦ç´ ã‚’å…¨ã¦å°æ–‡å—ã¨ã¿ãªã™)
ary.sort(key=str.lower)
print(ary)
# ('cat', 'Dog', 'elephant')
ary = (2, 5, 3.14, 1, -7, 'elephant', 'Dog', 'cat')
ary.sort()
# エラー
#æ˜‡é †
ary.sort()
print(ary)
# (-7, 1, 2, 3.14, 5)
#ASCIIコード(大文å—ãŒå…ˆ)æ˜‡é †
ary = ('elephant', 'Dog', 'cat')
ary.sort()
print(ary)
# ('Dog', 'cat', 'elephant')
#ASCIIコード(大文å—ãŒå…ˆ)é™é †
ary.sort(reverse=True)
print(ary)
# ('elephant', 'cat', 'Dog')
#ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆæ˜‡é †(è¦ç´ ã‚’å…¨ã¦å°æ–‡å—ã¨ã¿ãªã™)
ary.sort(key=str.lower)
print(ary)
# ('cat', 'Dog', 'elephant')
ary = (2, 5, 3.14, 1, -7, 'elephant', 'Dog', 'cat')
ary.sort()
# エラー
è¦ç´ 判定
$ary = [];
$ret = in_array($ary);
$ret:false
$ary = [1,2,3];
$ret = in_array($ary);
$ret:true
$ret = in_array($ary);
$ret:false
$ary = [1,2,3];
$ret = in_array($ary);
$ret:true
è¦ç´ 数変更
using System.Collections;
int[] ary = { 1, 2, 3 };
Array.Resize(array: ref ary, newSize: 5);
å‚照渡ã—ã§é…列を渡ã™ã€‚(「プãƒã‚°ãƒ©ãƒ 言語 変数/値渡ã—・å‚照渡ã—ã€å‚ç…§)
ary[3] = 4;
ary[4] = 5;
ary[5] = 6; ⇒ エラー
é…列⇒リスト変æ›
ArrayList list = new ArrayList(ary);
list.Add(value: 6);
リスト⇒é…列変æ›
ary = (int[])list.ToArray(typeof(int));
ary[5] += 1;
ary[5] : 7
ラムダå¼ã‚’利用ã—ãŸé…列ã®åˆæœŸåŒ–(å†é…ç½®)ã«ã¤ã„ã¦ã¯ã€Œãƒ©ãƒ ダå¼/é…列ã®åˆæœŸåŒ–ã€å‚ç…§
int[] ary = { 1, 2, 3 };
Array.Resize(array: ref ary, newSize: 5);
å‚照渡ã—ã§é…列を渡ã™ã€‚(「プãƒã‚°ãƒ©ãƒ 言語 変数/値渡ã—・å‚照渡ã—ã€å‚ç…§)
ary[3] = 4;
ary[4] = 5;
ary[5] = 6; ⇒ エラー
é…列⇒リスト変æ›
ArrayList list = new ArrayList(ary);
list.Add(value: 6);
リスト⇒é…列変æ›
ary = (int[])list.ToArray(typeof(int));
ary[5] += 1;
ary[5] : 7
ラムダå¼ã‚’利用ã—ãŸé…列ã®åˆæœŸåŒ–(å†é…ç½®)ã«ã¤ã„ã¦ã¯ã€Œãƒ©ãƒ ダå¼/é…列ã®åˆæœŸåŒ–ã€å‚ç…§
Imports System.Collections
Dim ary() As Integer = {1, 2, 3}
Array.Resize(array:=ary, newSize:=5)
ary(3) = 4
ary(4) = 5
ary(5) = 6 ⇒エラー
‘ é…列⇒リスト変æ›
Dim list As New ArrayList(ary)
list.Add(6)
‘ リスト⇒é…列変æ›
ary = DirectCast(list.ToArray(GetType(Integer)), Integer())
Dim ary() As Integer = {1, 2, 3}
Array.Resize(array:=ary, newSize:=5)
ary(3) = 4
ary(4) = 5
ary(5) = 6 ⇒エラー
‘ é…列⇒リスト変æ›
Dim list As New ArrayList(ary)
list.Add(6)
‘ リスト⇒é…列変æ›
ary = DirectCast(list.ToArray(GetType(Integer)), Integer())
è¦ç´ æ•°ç„¡ã—ã§å®šç¾©
Dim MyArray() As String
Dim MyArray(3) As String
è¦ç´ 数定義
Redim MyArray(3)
MyArray(0) = "A"
MyArray(1) = "B"
MyArray(2) = "C"
MyArray(3) = "D" â†ã‚¨ãƒ©ãƒ¼
æ—¢å˜è¦ç´ ã‚’ç¶æŒã—ãŸã¾ã¾ã§æ–°è¦ç´ を追åŠ
Redim Preserve MyArray(4)
MyArray(3) = "D" â†OK
Redim MyArray(4)ã ã¨å…¨è¦ç´ ãŒåˆæœŸåŒ–ã•れる
Dim MyArray() As String
è¦ç´ 数定義
Redim MyArray(3)
MyArray(0) = "A"
MyArray(1) = "B"
MyArray(2) = "C"
MyArray(3) = "D" â†ã‚¨ãƒ©ãƒ¼
æ—¢å˜è¦ç´ ã‚’ç¶æŒã—ãŸã¾ã¾ã§æ–°è¦ç´ を追åŠ
Redim Preserve MyArray(4)
MyArray(3) = "D" â†OK
Redim MyArray(4)ã ã¨å…¨è¦ç´ ãŒåˆæœŸåŒ–ã•れる
int[] oldAry = {1, 1, 2, 3, 3, 5};
int[] newAry = new int[oldAry.length + 1];
System.arraycopy(oldAry, 0, newAry, 0, oldAry.length);
[1, 1, 2, 3, 3, 5, 0]
Java8
int[] newAry = Arrays.copyOf(oldAry, oldAry.length + 1);
[1, 1, 2, 3, 3, 5, 0]
int[] newAry = new int[oldAry.length + 1];
System.arraycopy(oldAry, 0, newAry, 0, oldAry.length);
[1, 1, 2, 3, 3, 5, 0]
Java8
int[] newAry = Arrays.copyOf(oldAry, oldAry.length + 1);
[1, 1, 2, 3, 3, 5, 0]
è¦ç´ 自動追åŠ
$list[0] = '1番目è¦ç´ ';
$list[] = '2番目è¦ç´ ';
$list[] = '3番目è¦ç´ ';
指定è¦ç´ 削除
unset($list['3']);
unset($list[3]);
$listã®æœ«å°¾ã«è¿½åŠ
array_push($list, 4);
$list[] = 4 ã®æ–¹ãŒé€Ÿã„
$listã®æœ«å°¾ã‹ã‚‰è¦ç´ ã‚’1ã¤å‰Šé™¤
array_pop($list);
$listã®å…ˆé ã‹ã‚‰è¦ç´ ã‚’1ã¤å‰Šé™¤
array_shift($list);
$listã®å…ˆé ã«è¿½åŠ
array_unshift($list, 4);
$list[0] = '1番目è¦ç´ ';
$list[] = '2番目è¦ç´ ';
$list[] = '3番目è¦ç´ ';
指定è¦ç´ 削除
unset($list['3']);
unset($list[3]);
$listã®æœ«å°¾ã«è¿½åŠ
array_push($list, 4);
$list[] = 4 ã®æ–¹ãŒé€Ÿã„
$listã®æœ«å°¾ã‹ã‚‰è¦ç´ ã‚’1ã¤å‰Šé™¤
array_pop($list);
$listã®å…ˆé ã‹ã‚‰è¦ç´ ã‚’1ã¤å‰Šé™¤
array_shift($list);
$listã®å…ˆé ã«è¿½åŠ
array_unshift($list, 4);
å…ˆé ã«è¿½åŠ
var ary1[];
ary1.unshift('a');
ary1.unshift('b');
ary1.unshift('c');
→['c', 'b', 'a']
末尾ã«è¿½åŠ
var ary2[];
ary2.push('1');
ary2.push('2');
ary2.push('3');
→['1', '2', '3']
var ary1[];
ary1.unshift('a');
ary1.unshift('b');
ary1.unshift('c');
→['c', 'b', 'a']
末尾ã«è¿½åŠ
var ary2[];
ary2.push('1');
ary2.push('2');
ary2.push('3');
→['1', '2', '3']
連çµ
é€£çµæ–¹æ³• | é‡è¤‡æ™‚ã®æŒ™å‹• |
---|---|
+ | 第一é…列優先 |
array_merge() | 第二é…列優先 |
array_merge_recursive() | 両方優先 |
ã€ã€Œ+ã€ã«ã‚ˆã‚‹ä¸€èˆ¬é…列連çµã€‘ $list1 = [1, 3, 5];
Array(
  [0] => 1
  [1] => 3
  [2] => 5
)
$list2 = [1, 2, 3,4];
Array(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
)
$list3 = $list1 + $list2;
Array(
  [0] => 1
  [1] => 3
  [2] => 5
  [3] => 4
)
第一é…列ã«ç„¡ã„è¦ç´ ãŒè¿½åŠ è¿½åŠ ã•れる
ã€ã€Œ+ã€ã«ã‚ˆã‚‹é€£æƒ³é…列連çµã€‘ $list1 = [
 'A1' => 'A1',
 'A3' => 'A3',
 'A5' => 'A5',
];
$list2 = [
 'A1' => 'A1',
 'A2' => 'A2',
 'A3' => 'A3',
];
$list3 = $list1 + $list2;
Array(
  [A1] => A1
  [A3] => A3
  [A5] => A5
  [A2] => A2
)
第一é…列ã«ç„¡ã„è¦ç´ ãŒè¿½åŠ ã•れる
ã€ã€Œarray_mergeã€ã«ã‚ˆã‚‹é€šå¸¸é…列連çµã€‘ $list1 = [1, 3, 5];
Array(
  [0] => 1
  [1] => 3
  [2] => 5
)
$list2 = [1, 2, 3,4];
Array(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
)
$list3 = array_merge($list1, $list2);
Array(
  [0] => 1
  [1] => 3
  [2] => 5
  [3] => 1
  [4] => 2
  [5] => 3
  [6] => 4
)
インデックス番å·ãŒé‡è¤‡ã™ã‚‹å ´åˆã¯å¾Œã‚ã«è¿½åŠ ã•れる
第一é…列ã«ç„¡ã„è¦ç´ ã‚‚è¿½åŠ ã•れる
ã€ã€Œarray_mergeã€ã«ã‚ˆã‚‹é€£æƒ³é…列連çµã€‘ $list1 = [
 'A1' => 'A1-1',
 'A3' => 'A3-1',
 'A5' => 'A5-1',
];
$list2 = [
 'A1' => 'A1-2',
 'A2' => 'A2-2',
 'A3' => 'A3-2',
];
$list3 = array_merge($list1, $list2);
Array(
  [A1] => A1-2
  [A3] => A3-2
  [A5] => A5-1
  [A2] => A2-2
)
ã‚ーãŒé‡è¤‡ã™ã‚‹å ´åˆã¯ç¬¬äºŒé…列ãŒå„ªå…ˆã•れる
第一é…列ã«ç„¡ã„è¦ç´ ã‚‚è¿½åŠ ã•れる
ã€ã€Œarray_merge_recursiveã€ã«ã‚ˆã‚‹é€£æƒ³é…列連çµã€‘ $list1 = [
 'A1' => 'A1-1',
 'A3' => 'A3-1',
 'A5' => 'A5-1',
];
$list2 = [
 'A1' => 'A1-2',
 'A2' => 'A2-2',
 'A3' => 'A3-2',
];
$list3 = array_merge_recursive($list1, $list2);
Array(
  [A1] => Array
    (
      [0] => A1-1
      [1] => A1-2
    )
  [A3] => Array
    (
      [0] => A3-1
      [1] => A3-2
    )
  [A5] => A5-1
  [A2] => A2-2
)
ã‚ーãŒé‡è¤‡ã—ãŸå ´åˆã€åé…列ãŒç”Ÿæˆã•れる
タプルã¯ã‚¤ãƒŸãƒ¥ãƒ¼ã‚¿ãƒ–ル(æ›´æ–°ä¸å¯)
ãƒªã‚¹ãƒˆåŒ–ï¼†è¿½åŠ ï¼†ã‚¿ãƒ—ãƒ«åŒ–ã¯å¯èƒ½
ãƒªã‚¹ãƒˆåŒ–ï¼†è¿½åŠ ï¼†ã‚¿ãƒ—ãƒ«åŒ–ã¯å¯èƒ½
var ary1 = ['c', 'b', 'a'];
var ary2 = ['1', '2', '3'];
末尾ã«çµåˆ
var ary3 = ary1.concat(ary2);
→['c', 'b', 'a', '1', '2', '3']
var ary2 = ['1', '2', '3'];
末尾ã«çµåˆ
var ary3 = ary1.concat(ary2);
→['c', 'b', 'a', '1', '2', '3']
ç½®æ›
array_splice(æ“作対象é…列, æ“作開始ä½ç½®, ç½®æ›è¦ç´ æ•°, ç½®æ›å¯¾è±¡é…列)
$list = [
 'A',
 'B',
 'C',
];
array_splice($list, 0, 2, ['D1', 'D2', 'D3']);
$listã®1番目ã®è¦ç´ ã‹ã‚‰2è¦ç´ ã‚’['D1', 'D2', 'D3']ã§ç½®æ›
→
$list = [
 'D1',
 'D2',
 'D3',
 'B',
 'C',
];
$list = [
 'A',
 'B',
 'C',
];
array_splice($list, -2, 2, ['D1', 'D2', 'D3']);
$listã®2番目(-2)ã®è¦ç´ ã‹ã‚‰2è¦ç´ ã‚’['D1', 'D2', 'D3']ã§ç½®æ›
→
$list = [
 'A',
 'D1',
 'D2',
 'D3',
];
$list = [
 'A',
 'B',
 'C',
];
array_splice($list, 0, 2, ['D1', 'D2', 'D3']);
$listã®1番目ã®è¦ç´ ã‹ã‚‰2è¦ç´ ã‚’['D1', 'D2', 'D3']ã§ç½®æ›
→
$list = [
 'D1',
 'D2',
 'D3',
 'B',
 'C',
];
$list = [
 'A',
 'B',
 'C',
];
array_splice($list, -2, 2, ['D1', 'D2', 'D3']);
$listã®2番目(-2)ã®è¦ç´ ã‹ã‚‰2è¦ç´ ã‚’['D1', 'D2', 'D3']ã§ç½®æ›
→
$list = [
 'A',
 'D1',
 'D2',
 'D3',
];
切りå–り
$list1 = ['A', 'B', 'C'];
Array(
  [0] => A
  [1] => B
  [2] => C
)
$list2 = array_slice($list1, 1, 2, false);
→
Array(
  [0] => B
  [1] => C
)
å…ƒã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ç•ªå·ã¯ç¶æŒã•れãªã„
インデックス番å·ãŒ0ã‹ã‚‰é™ã‚Šç›´ã•れる
$list1 = ['A', 'B', 'C'];
Array(
  [0] => A
  [1] => B
  [2] => C
)
$list2 = array_slice($list1, 1, 2, true);
→
Array(
  [1] => B
  [2] => C
)
å…ƒã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ç•ªå·ã¯ç¶æŒã•れる
Array(
  [0] => A
  [1] => B
  [2] => C
)
$list2 = array_slice($list1, 1, 2, false);
→
Array(
  [0] => B
  [1] => C
)
å…ƒã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ç•ªå·ã¯ç¶æŒã•れãªã„
インデックス番å·ãŒ0ã‹ã‚‰é™ã‚Šç›´ã•れる
$list1 = ['A', 'B', 'C'];
Array(
  [0] => A
  [1] => B
  [2] => C
)
$list2 = array_slice($list1, 1, 2, true);
→
Array(
  [1] => B
  [2] => C
)
å…ƒã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ç•ªå·ã¯ç¶æŒã•れる
タプルã¯ã‚¤ãƒŸãƒ¥ãƒ¼ã‚¿ãƒ–ル(æ›´æ–°ä¸å¯)
ãƒªã‚¹ãƒˆåŒ–ï¼†è¿½åŠ ï¼†ã‚¿ãƒ—ãƒ«åŒ–ã¯å¯èƒ½
ãƒªã‚¹ãƒˆåŒ–ï¼†è¿½åŠ ï¼†ã‚¿ãƒ—ãƒ«åŒ–ã¯å¯èƒ½
検索
int[] ary = {1, 1, 2, 3, 3, 5};
int found = Arrays.binarySearch(ary, 1);
0
int found = Arrays.binarySearch(ary, 2);
2
int found = Arrays.binarySearch(ary, 3);
4
実行å‰ã«ã‚½ãƒ¼ãƒˆãŒå¿…è¦
0ã‹ã‚‰æ•°ãˆã¦ä½•番目ã‹ï¼Ÿã‚’å–å¾—
複数発見ã•ã‚Œã‚‹å ´åˆã€å…ˆé ã‚’å–å¾—
int found = Arrays.binarySearch(ary, 1);
0
int found = Arrays.binarySearch(ary, 2);
2
int found = Arrays.binarySearch(ary, 3);
4
実行å‰ã«ã‚½ãƒ¼ãƒˆãŒå¿…è¦
0ã‹ã‚‰æ•°ãˆã¦ä½•番目ã‹ï¼Ÿã‚’å–å¾—
複数発見ã•ã‚Œã‚‹å ´åˆã€å…ˆé ã‚’å–å¾—
$list = [
 'PHP',
 'Java',
 'JavaScript',
 'PHP',
];
$ret = array_search('Java', $list);
→1
å…ˆé ã®è¦ç´ 番å·ãŒå–å¾—ã•れる
$ret = array_search('C#', $list);
→false
制御文ã§ä½¿ç”¨ã™ã‚‹å ´åˆ
if (array_search('Java', $list)===false){
 ~
}
$list = [
 'PHP',
 'Java',
 'JavaScript',
 'PHP',
];
$ret = in_array('Java', $list);
→true
$ret = in_array('Ruby', $list);
→false
制御文ã§ä½¿ç”¨ã™ã‚‹å ´åˆ
if (in_array('Java', $list)){
 ~
}
 'PHP',
 'Java',
 'JavaScript',
 'PHP',
];
$ret = array_search('Java', $list);
→1
å…ˆé ã®è¦ç´ 番å·ãŒå–å¾—ã•れる
$ret = array_search('C#', $list);
→false
制御文ã§ä½¿ç”¨ã™ã‚‹å ´åˆ
if (array_search('Java', $list)===false){
 ~
}
$list = [
 'PHP',
 'Java',
 'JavaScript',
 'PHP',
];
$ret = in_array('Java', $list);
→true
$ret = in_array('Ruby', $list);
→false
制御文ã§ä½¿ç”¨ã™ã‚‹å ´åˆ
if (in_array('Java', $list)){
 ~
}
ary = ('elephant', 'dog', 'cat')
インデックス番å·(0ã‹ã‚‰)
print(ary.index('elephant')) # 0
ret = 'cat' in ary
print(ret)
# True
ret = 'bird' in ary
print(ret)
# False
ret = 'cat' not in ary
print(ret)
# False
ret = 'bird' not in ary
print(ret)
# True
# è¦ç´ 番å·
index = ary.index('cat')
print(index)
# 2
index = ary.index('elephant')
print(index)
# 0
index = ary.index('bird')
print(index)
# エラー
インデックス番å·(0ã‹ã‚‰)
print(ary.index('elephant')) # 0
ret = 'cat' in ary
print(ret)
# True
ret = 'bird' in ary
print(ret)
# False
ret = 'cat' not in ary
print(ret)
# False
ret = 'bird' not in ary
print(ret)
# True
# è¦ç´ 番å·
index = ary.index('cat')
print(index)
# 2
index = ary.index('elephant')
print(index)
# 0
index = ary.index('bird')
print(index)
# エラー
特殊ãªé…列
多次元é…列
int[,] ary = new int[2, 2];
ary[0, 0] = 1;
ary[0, 1] = 2;
ary[1, 0] = 3;
ary[1, 1] = 4;
int[,] ary = new int[,]
{
  { 1, 2 },
  { 3, 4 }
};
foreach (int elm in ary)
{
  Console.WriteLine(elm);
}
ary[0, 0] = 1;
ary[0, 1] = 2;
ary[1, 0] = 3;
ary[1, 1] = 4;
int[,] ary = new int[,]
{
  { 1, 2 },
  { 3, 4 }
};
foreach (int elm in ary)
{
  Console.WriteLine(elm);
}
int[][] ary = new int[][]{1,2,3,4}
int[][] ary = {1,2,3,4}
int ary[][] = {1,2,3,4}
C#ã«ãŠã‘ã‚‹ã€int[,] ary ~ ã®æ§‹æ–‡ã¯ç„¡ã„。
(多次元é…列ã¨ã‚¸ãƒ£ã‚°é…列ã®å®£è¨€ã®é•ã„ç„¡ã—)
int[][] ary = {1,2,3,4}
int ary[][] = {1,2,3,4}
C#ã«ãŠã‘ã‚‹ã€int[,] ary ~ ã®æ§‹æ–‡ã¯ç„¡ã„。
(多次元é…列ã¨ã‚¸ãƒ£ã‚°é…列ã®å®£è¨€ã®é•ã„ç„¡ã—)
通常
ary = ((1,2,3), (4,5,6))
print(ary)
# ((1 2 3) (4 5 6))
2ã¤ç›®ã®é…列ã®1ã¤ç›®ã®è¦ç´ を指定
print(ary[1][0]) #4
タプルã§ã‚‚ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®æŒ‡å®šã¯[]を用ã„ã‚‹
ary = ((1,2,3), (4,5,6))
print(ary)
# ((1 2 3) (4 5 6))
2ã¤ç›®ã®é…列ã®1ã¤ç›®ã®è¦ç´ を指定
print(ary[1][0]) #4
タプルã§ã‚‚ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®æŒ‡å®šã¯[]を用ã„ã‚‹
ジャグé…列
è¦ç´ ãŒé…列ã§ã‚ã‚‹é…列
é…列ã®è¦ç´ ã¨ã—ã¦é…åˆ—ã‚’æ ¼ç´ã™ã‚‹ç‚ºã«ã¯é…列インスタンスを作æˆã™ã‚‹å¿…è¦ãŒã‚る。
int[][] ary = new int[3][];
ary[0] = new int[] { 1, 2, 3 };
ary[1] = new int[] { 1, 2 };
ary[2] = new int[] { 1, 2, 3, 4, 5 };
int[][] ary = new int[3][]
{
  new int[] { 1, 2, 3 },
  new int[] { 1, 2 },
  new int[] { 1, 2, 3, 4, 5 }
};
foreach (int[] elms in ary)
{
  foreach (int elm in elms)
  {
    Console.WriteLine(elms);
  }
}
int[][] ary = new int[3][];
ary[0] = new int[] { 1, 2, 3 };
ary[1] = new int[] { 1, 2 };
ary[2] = new int[] { 1, 2, 3, 4, 5 };
int[][] ary = new int[3][]
{
  new int[] { 1, 2, 3 },
  new int[] { 1, 2 },
  new int[] { 1, 2, 3, 4, 5 }
};
foreach (int[] elms in ary)
{
  foreach (int elm in elms)
  {
    Console.WriteLine(elms);
  }
}
é…列ã®è¦ç´ ã¨ã—ã¦é…åˆ—ã‚’æ ¼ç´ã™ã‚‹ç‚ºã«ã€é…列インスタンスを作æˆã™ã‚‹å¿…è¦ç„¡ã—(自動)
int[][] array = new int[2][2];
array[0][0] = 5;
array[0][1] = 5;
array[1][0] = 5;
array[1][1] = 5;
array[2][0] = 5; ⇒ 実行時エラー
宣言ã¨åŒæ™‚ã«è¦ç´ ã‚’è¨å®š
int[][] array = new int[][]
{
  {5,5},
  {5,5}
};
2次元目ã®è¦ç´ 数を定ã‚ãšã«å®£è¨€
int[][] array = new int[2][];
array[0] = new int[]{5,5};
array[1] = new int[]{5,5,5};
array[2] = new int[]{5,5,5,5}; ⇒ 実行時エラー
int[][] array = new int[2][2];
array[0][0] = 5;
array[0][1] = 5;
array[1][0] = 5;
array[1][1] = 5;
array[2][0] = 5; ⇒ 実行時エラー
宣言ã¨åŒæ™‚ã«è¦ç´ ã‚’è¨å®š
int[][] array = new int[][]
{
  {5,5},
  {5,5}
};
2次元目ã®è¦ç´ 数を定ã‚ãšã«å®£è¨€
int[][] array = new int[2][];
array[0] = new int[]{5,5};
array[1] = new int[]{5,5,5};
array[2] = new int[]{5,5,5,5}; ⇒ 実行時エラー
my @elm1 = ("row1-col1", "row1-col2", "row1-col3");
my @elm2 = ("row2-col1", "row2-col2", "row2-col3");
my @table = (@elm1, @elm2);
print $table[0][0] #エラー
#é…列ã®ãƒªãƒ•ァレンスå–å¾—
my $ref1 = ["row1-col1", "row1-col2", "row1-col3"];
my $ref2 = ["row2-col1", "row2-col2", "row2-col3"];
my @table = ($ref1, $ref2);
print $table[0][0] # ⇒ "row1-col1"
#連想é…列ã®ä¸ã«é…列を入れる
my $elm1 = {
 name => 'yone',
 age => 36,
};
my @family = ('wife', 'child1', 'child2');
my $elm2 = {
 #é…列を作æˆã¨åŒæ™‚ã«ã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚’æ ¼ç´
 food => ['niku', 'sushi'],
 sports => 'basket',
 #é…列ã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚’æ ¼ç´
 family => \\@family,
};
my %table = (
 elm1 => $elm1,
 elm2 => $elm2
);
print Dumper %table,"\\n";
⇒
$VAR1 = 'elm2';
$VAR2 = {
 'sports' => 'basket',
 'family' => [
  'wife',
  'child1',
  'child2'
   ],
 'food' => [
   'niku',
   'sushi'
  ]
};
$VAR3 = 'elm1';
$VAR4 = {
 'name' => 'yone',
 'age' => 36
};
ãƒã‚¤ãƒ³ã‚¿(リファレンス/デリファレンス)を使用ã—ãŸé…列ã®åˆ©ç”¨ã«ã¤ã„ã¦ã¯ã€Œãƒ—ãƒã‚°ãƒ©ãƒ 言語 ãƒã‚¤ãƒ³ã‚¿ / é…列ã®ãƒã‚¤ãƒ³ã‚¿ã€å‚ç…§
my @elm2 = ("row2-col1", "row2-col2", "row2-col3");
my @table = (@elm1, @elm2);
print $table[0][0] #エラー
#é…列ã®ãƒªãƒ•ァレンスå–å¾—
my $ref1 = ["row1-col1", "row1-col2", "row1-col3"];
my $ref2 = ["row2-col1", "row2-col2", "row2-col3"];
my @table = ($ref1, $ref2);
print $table[0][0] # ⇒ "row1-col1"
#連想é…列ã®ä¸ã«é…列を入れる
my $elm1 = {
 name => 'yone',
 age => 36,
};
my @family = ('wife', 'child1', 'child2');
my $elm2 = {
 #é…列を作æˆã¨åŒæ™‚ã«ã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚’æ ¼ç´
 food => ['niku', 'sushi'],
 sports => 'basket',
 #é…列ã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚’æ ¼ç´
 family => \\@family,
};
my %table = (
 elm1 => $elm1,
 elm2 => $elm2
);
print Dumper %table,"\\n";
⇒
$VAR1 = 'elm2';
$VAR2 = {
 'sports' => 'basket',
 'family' => [
  'wife',
  'child1',
  'child2'
   ],
 'food' => [
   'niku',
   'sushi'
  ]
};
$VAR3 = 'elm1';
$VAR4 = {
 'name' => 'yone',
 'age' => 36
};
ãƒã‚¤ãƒ³ã‚¿(リファレンス/デリファレンス)を使用ã—ãŸé…列ã®åˆ©ç”¨ã«ã¤ã„ã¦ã¯ã€Œãƒ—ãƒã‚°ãƒ©ãƒ 言語 ãƒã‚¤ãƒ³ã‚¿ / é…列ã®ãƒã‚¤ãƒ³ã‚¿ã€å‚ç…§