プãƒã‚°ãƒ©ãƒ 言語 リスト・連想é…列
リスト(コレクション)
リストã®åž‹ã«ã¤ã„ã¦ã¯ã€Œãƒ—ãƒã‚°ãƒ©ãƒ 言語 ジェãƒãƒªãƒƒã‚¯ã€å‚ç…§
ãƒªã‚¹ãƒˆã®æ“作
åˆæœŸåŒ–
list.add(1);
list.add(1);
list.add(2);
list.add(3);
list.add(5);
List
è¦ç´ ã®è¿½åŠ ãƒ»å¤‰æ›´ãƒ»å‰Šé™¤ä¸å¯
ArrayListã¨åˆ¥åž‹
List
è¦ç´ ã®è¿½åŠ ãƒ»å¤‰æ›´ãƒ»å‰Šé™¤å¯
ArrayListã¨åŒåž‹
ary = [1, 2, 3]
é…列ã€ç®—術パッケージ
import numpy as np
ary = np.asarray([1, 2, 3])
print(ary) # [1 2 3]
æ•´æ•°
int = np.asarray([1.5, 2.5, 3.5], dtype=np.int32)
print(int) # [1 2 3]
æµ®å‹•å°æ•°ç‚¹æ•°åž‹
float = np.asarray([1.5, 2.5, 3.5], dtype=np.float)
print(float) # [1.5 2.5 3.5]
変æ›
float = int.astype(np.float32)
print(float) # [1. 2. 3.]
è¦ç´ æ•°
print(ary.shape) # (3,)
è¦ç´ ãŒ0ã®ãƒªã‚¹ãƒˆ
ary = np.zeros(10, np.int32)
print(ary) # [0 0 0 0 0 0 0 0 0 0]
ary = np.ones(10, np.int32)
print(ary) # [1 1 1 1 1 1 1 1 1 1]
1未満ã®ä¹±æ•°
ary = np.random.rand()
print(ary) # 0.05840233316803445
1未満ã®ä¹±æ•° & 3è¦ç´ ã®ãƒªã‚¹ãƒˆ
ary = np.random.rand(3)
print(ary) # [0.29455163 0.62542719 0.85194529]
æ–‡å—åˆ—â†’ãƒªã‚¹ãƒˆå¤‰æ› / æ–‡å—列â†ãƒªã‚¹ãƒˆå¤‰æ›
print('Java php python C#'.split())
#['Java', 'php', 'python', 'C#']
print('Java, php, python, C#'.split())
#['Java,', 'php,', 'python,', 'C#']
print('Java, php, python, C#'.split(','))
#['Java', ' php', ' python', ' C#']
print('Java,php,python,C#'.split(','))
#['Java', 'php', 'python', 'C#']
リストã®ã‚³ãƒ”ー
ary2 = ary1 #å‚照元をコピー
ary2[1] = 'C#' #å‚照元を変更
print(ary1) #['php', 'C#', 'Python']
print(ary2) #['php', 'C#', 'Python']
ary1 = ['php','Java','Python']
ary2 = ary1.copy() #値をコピー
ary2[1] = 'C#'
print(ary1) # ['php', 'Java', 'Python']
print(ary2) # ['php', 'C#', 'Python']
ary1 = {'php':'CakePHP3', 'Java':'SpringBoot', 'Python':'Django'}
ary2 = ary1 #å‚照元をコピー
ary2['php'] = 'Larabel' #å‚照元を変更
print(ary1) # {'php': 'Larabel', 'Java': 'SpringBoot', 'Python': 'Django'}
print(ary2) # {'php': 'Larabel', 'Java': 'SpringBoot', 'Python': 'Django'}
ary1 = {'php':'CakePHP3', 'Java':'SpringBoot', 'Python':'Django'}
ary2 = ary1.copy() #値をコピー
ary2['php'] = 'Larabel'
print(ary1) # {'php': 'CakePHP3', 'Java': 'SpringBoot', 'Python': 'Django'}
print(ary2) # {'php': 'Larabel', 'Java': 'SpringBoot', 'Python': 'Django'}
ary1 = [['php', 'Java', 'Python'],['CakePHP3', 'SpringBoot' ,'Django']]
ary2 = ary1 #å‚照元をコピー
ary2[1][0] = 'Larabel'
print(ary1) # [['php', 'Java', 'Python'], ['Larabel', 'SpringBoot', 'Django']]
print(ary2) # [['php', 'Java', 'Python'], ['Larabel', 'SpringBoot', 'Django']]
ary1 = [['php', 'Java', 'Python'],['CakePHP3', 'SpringBoot' ,'Django']]
ary2 = ary1.copy() #é…列ã®ä¸ã®é…列をコピー → 失敗
ary2[1][0] = 'Larabel'
print(ary1) # [['php', 'Java', 'Python'], ['Larabel', 'SpringBoot', 'Django']]
print(ary2) # [['php', 'Java', 'Python'], ['Larabel', 'SpringBoot', 'Django']]
import copy
ary1 = [['php', 'Java', 'Python'],['CakePHP3', 'SpringBoot' ,'Django']]
ary2 = copy.deepcopy(ary1) #é…列ã®ä¸ã®é…列をコピー → æˆåŠŸ
ary2[1][0] = 'Larabel'
print(ary1) # [['php', 'Java', 'Python'], ['CakePHP3', 'SpringBoot', 'Django']]
print(ary2) # [['php', 'Java', 'Python'], ['Larabel', 'SpringBoot', 'Django']]
多次元
ary = [[1,2,3], [4,5,6]]
print(ary)
# [[1 2 3] [4 5 6]]
2ã¤ç›®ã®é…列ã®1ã¤ç›®ã®è¦ç´ を変更
ary[1][0] = 10
print(ary[1][0]) #10
é…列ã€ç®—術パッケージ
import numpy as np
多次元é…列
ary = np.asarray([[1,2,3], [4,5,6]])
print(ary)
# [[1 2 3] [4 5 6]]
è¦ç´ æ•°
print(ary.shape)
# (2, 3)
1未満ã®ä¹±æ•°
ary = np.random.rand()
print(ary) # 0.05840233316803445
1未満ã®ä¹±æ•° & 3è¦ç´ ã®é…列
ary = np.random.rand(3)
print(ary) # [0.29455163 0.62542719 0.85194529]
0以上1未満ã®ä¹±æ•° & 2次元3è¦ç´ ã®é…列
ary = np.random.rand(2, 3)
print(ary) # [[0.40308448 0.73320688 0.52510381][0.983294  0.10888467 0.02262024]]
空リスト判定
boolean bool1 = CollectionUtils.isEmpty(list);
true
boolean bool2 = CollectionUtils.isNotEmpty(list);
false
è¦ç´ ã®æ“作
è¿½åŠ ãƒ»å‰Šé™¤
var myList = new List {10,20,30,40,50}; ã‚‚å¯
追åŠ
myList.Add(6);
int[] myInt = { 1, 2, 3 };
var list = new List<string>() { @"A", @"B" };
list.AddRange(myInt.Select(n => n.ToString()));
list.AddRange(Enumerable.Range(start: 4, count: 10).Select(n => n.ToString()));
çµåˆã—ã¦è¿½åŠ
int[] ary1 = { 1, 2, 3 };
int[] ary2 = { 4, 5, 6 };
ary1 = ary1.Concat(ary2).ToArray();
削除
myList.Remove(10);
myList.Remove(myList[3]);
myList.RemoveAt(1);
åˆæœŸåŒ–
myList.Clear();
int main(array<System::String ^> ^args)
{
  ベクター(コレクション)
  std::vector<int> myVector;
  イテレーター:ä½ç½®æƒ…å ±
  std::vector<int>::iterator myBegin;
  std::vector<int>::iterator myEnd;
  
  myVector.push_back(10); // 末尾ã«è¿½åŠ
  myVector.push_back(20); // 末尾ã«è¿½åŠ
  myVector.push_back(30); // 末尾ã«è¿½åŠ
  myVector.pop_back(); // 末尾を削除
  
  Console::WriteLine(myVector[0]);
  Console::WriteLine(myVector.at(0));
  // → 10
  
  // å…ˆé è¦ç´ ã®å–å¾—(削除ã¯ã—ãªã„)
  int elm = myVector.front();
  // elm:10
  // 末尾è¦ç´ ã®å–å¾—(削除ã¯ã—ãªã„)
  int elm = myVector.back();
  // elm:30
  
  myBegin = myVector.begin();  //最åˆã®è¦ç´ ä½ç½®
  myEnd = myVector.end();    //最後ã®è¦ç´ ä½ç½®
  myFunc(myBegin, myEnd);
  
  return 0;
}
void myFunc(std::vector<int>::iterator prmBegin, std::vector<int>::iterator prmEnd)
{
  // ä½ç½®æƒ…å ±ï¼šå…ˆé ~末尾ã¾ã§å…¨ä»¶Loop
  for (std::vector<int>::iterator tmp = prmBegin; tmp != prmEnd; tmp++)
  {
    Console::WriteLine(*tmp);
  }
  
  ↓もåŒã˜
  
  // ä½ç½®æƒ…å ±ï¼šå…ˆé ~末尾ã¾ã§å…¨ä»¶Loop
  for (; prmBegin != prmEnd; ++prmBegin)
  {
    // ãƒã‚¤ãƒ³ã‚¿ã‚’用ã„ã¦é éš”æ“作
    Console::WriteLine(*prmBegin);
  }
}
myList.Add(15)
myList.Remove(20)
myList.Remove(myList(2))
myList.RemoveAt(1)
myList.Sort()
myList.Clear()
IF | クラス | é †åº | é‡è¤‡ | è¿½åŠ | 削除 | å‚ç…§ | |
---|---|---|---|---|---|---|---|
Collection | List | ArrayList | æ ¼ç´é † | 〇 | add | remove | — |
SortedList | 整列 | 〇 | add | remove | — | ||
Set | HashSet | é †ä¸åŒ | × | add | remove | — | |
TreeSet | 整列 | × | add | remove | — | ||
Queue | ArrayDeque | FIFO | 〇 | offer offerLast |
poll | peek | |
Deque | ArrayDeque | LIFO | 〇 | offerFirst | poll | peek | |
Map | Map | HashMap | é †ä¸åŒ | ã‚ー:× 値:〇 |
put | remove | get(ã‚ー) |
TreeMap | 整列 | ã‚ー:× 値:〇 |
put | remove | get(ã‚ー) |
ArrayList
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("2");
list.add("3");
for (String key : list){
 System.out.println(key);
}
→1 2 2 3
追åŠ
ArrayList array = new ArrayList<>();
ArrayList<Object> array = new ArrayList<Object>();ã¨åŒã˜
array.add(5);
⇒ array {5}
array.add("5");
⇒ array {5,"5"}
array.add('5');
⇒ array {5,"5",'5'}
指定ã®ä½ç½®ã«è¿½åŠ
array.add(2,5);
⇒ array {5,"5",5,'5'}
å…ˆé ã‹ã‚‰åˆè‡´ã—ãŸè¦ç´ を上書ã
array.set(0, 50);
⇒ array {50,"5",5,'5'}
å…ˆé ã‹ã‚‰åˆè‡´ã—ãŸè¦ç´ を削除
array.remove("5");
⇒ array {50,5,'5'}
æ¡ä»¶ã«åˆè‡´ã—ãŸè¦ç´ を削除
List
list.removeIf(i -> i.equals(5));
list.toString();
[1, 2, 3, 4, 6, 7, 8, 9, 10]
for (int i=0; i<array.size(); i++){
 String s = array.get(i);
}
for (Iterator i=array.iterator(); i.hasNext(); ){
 String s = i.next().toString();
}
HashSet
HashSet<String> hashSet = new HashSet<>();
hashSet.addAll(list);
for (String key : hashSet){
 System.out.println(key);
}
→2 1 3
TreeSet
TreeSet<String> treeSet = new TreeSet<>();
treeSet .addAll(list);
for (String key : treeSet){
 System.out.println(key);
}
→1 2 3
Queue
Queue<String> queue = new ArrayDeque<>();
queue.addAll(list);
System.out.println(queue.poll());
System.out.println(queue.poll());
queue.offer("2");
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());
→1 2 2 3 2
Deque
Deque<String> stack = new ArrayDeque<>();
stack.offerFirst("1");
stack.offerFirst("2");
stack.offerFirst("2");
stack.offerFirst("3");
System.out.println(stack.poll());
System.out.println(stack.poll());
stack.offerFirst("2");
System.out.println(stack.poll());
System.out.println(stack.poll());
System.out.println(stack.poll());
→3 2 2 2 1
ary = ['php', 'python', 'Java']
# 末尾ã«è¿½åŠ
ary += ['C#']
print(ary)
→['php', 'python', 'Java', 'C#']
# 追åŠ
ary = []
ary.append('php')
ary.append('python')
ary.append('Java')
ary.append('C#')
print(ary)
→['php', 'python', 'Java', 'C#']
# インデックスを指定ã—ã¦è¿½åŠ
ary = []
ary.insert(0, 'php') #å…ˆé ã«è¿½åŠ
ary.insert(1, 'python') #2番目ã«è¿½åŠ
ary.insert(5, 'Java') #末尾ã«è¿½åŠ
print(ary)
→['php', 'python', 'Java']
削除
ary.remove('php')
del ary[1] #インデックスを指定
del ary[-1] #末尾ã®è¦ç´ を指定

push
é…åˆ—ã®æœ€å¾Œã«è¦ç´ ã‚’è¿½åŠ ã™ã‚‹
my @x;
push(@x, 1);
my @y = (2,3);
push(@x, @y);
push(@x, 4, 5); #連続ã§ã„ãã¤ã§ã‚‚è¿½åŠ å¯
⇒ @x : 1 2 3 4 5
pop
é…åˆ—ã®æœ€å¾Œã®è¦ç´ ã‚’å–り除ã
my @before = (1,2,3,4,5);
pop(@before);
⇒ @before : 1 2 3 4
my $after = pop(@before);
⇒ $after : 4
⇒ @before : 1 2 3
shift
é…åˆ—ã®æœ€åˆã®è¦ç´ ã‚’å–り除ã
my @before = (1,2,3,4,5);
shift(@before);
⇒ @before : 2 3 4 5
my $after = shift(@before);
⇒ $after : 2
⇒ @before : 3 4 5
unshift
å…ˆé ã¸è¦ç´ 追åŠ
my @x;
my @y = (1,2,3);
unshift(@x, @y);
unshift(@x, 0, -1);
⇒ @x : -1 0 1 2 3
splice
é…列ã‹ã‚‰æŒ‡å®šã®è¦ç´ ã‚’ã€æŒ‡å®šã®å€‹æ•°åˆ†å–り除ã
splice(é…列 , é–‹å§‹Index , 個数);
my @x = (1,2,3,4,5);
splice(@x,0,2);
⇒ @x : 3 4 5
reverse
é…列ã®è¦ç´ ã‚’é€†é †ã«ã™ã‚‹
my @before = (1,2,3,4,5);
my @after = reverse(@before);
⇒ @before : 1 2 3 4 5
⇒ @after : 5 4 3 2 1
sort
é…列ã®è¦ç´ をソートã™ã‚‹(数値é™å®š)
my @before = (2,1,4,3,5);
æ˜‡é †
my @after = sort{$a <=> $b}(@before);
⇒ @before : 2,1,4,3,5
⇒ @after : 1 2 3 4 5
é™é †
my @after = sort{$b <=> $a}(@before);
⇒ @before : 2,1,4,3,5
⇒ @after : 5 4 3 2 1
ç½®æ›
list.replaceAll(i -> i * 10);
list.toString():[10, 20, 30, 50, 70]
比較
Comparable | Comparator | |
---|---|---|
機能 | 自身ã¨ä»–者ã¨ã®å¤§å°æ¯”較 | 2オブジェクトã®å¤§å°æ¯”較 |
Package | java.lang.Comparable | java.util.Comparator |
メソッド | compareTo |
・compare ・equals ・reversed |
クラス |
・Integer ・Stringç‰ |
・TreeSet ・TreeMapç‰ |
package java.lang;
public interface Comparable<T> {
 public int compareTo(T o);
}
例
public final class Integer extends Number implements Comparable<Integer> {
 public int compareTo(Integer anotherInteger) {
  return compare(this.value, anotherInteger.value);
 }
 public static int compare(int x, int y) {
  return (x < y) ? -1 : ((x == y) ? 0 : 1);
 }
}
package java.util;
public interface Comparator<T> {
 int compare(T o1, T o2);
 boolean equals(Object obj);
 default Comparator<T> reversed() {
  return Collections.reverseOrder(this);
 }
}
検索
int found = Collections.binarySearch(list, "Java");
0
int found = Collections.binarySearch(list, "Java");
-5
計算
import numpy as np
ary = np.asarray([1, 2, 3])
# åˆè¨ˆ
print(np.sum(ary))
# å¹³å‡
print(np.mean(ary))
# 最大値
print(np.max(ary))
# 最å°å€¤
print(np.min(ary))
# 標準åå·®
print(np.std(ary))
ä¸¦ã³æ›¿ãˆ(è‡ªç„¶é †åº)
è‡ªç„¶é †åºï¼šæ•°å—ã€ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ç‰
string[] ary = new string[] { "b", "aaaaa", "cc" };
Array.Sort(ary, (x, y) => x.Length.CompareTo(y.Length));
※x, y ã«ã¯é•·ã•を比較ã™ã‚‹ç‚ºã®å„è¦ç´ ãŒå…¥ã‚Šã€2ã¤ã®è¦ç´ ã®é•·ã•比較を行ã†
DateTime[] ary = new DateTime[]
{
 new DateTime(year: 2010, month: 1, day: 1),
 new DateTime(year: 2001, month: 1, day: 1),
 new DateTime(year: 2005, month: 1, day: 1),
 new DateTime(year: 2003, month: 1, day: 1)
};
Array.Sort(ary, (x, y) => Math.Sign(x.Ticks – y.Ticks));
var newary1 = ary.OrderBy(n => n);
list.add("20");
list.add("30");
list.add("10");
list:20 30 10
Collections.sort(list);
list:10 20 30
Collections.reverse(list);
list:30 20 10
ä¸¦ã³æ›¿ãˆ(定義)
 private String _name;
 private Integer _id;
 public Employee(String name, Integer id){
  this._name = name;
  this._id = id;
 }
 public Integer getId(){
  return this._id;
 }
 public String getName(){
  return this._name;
 }
}
※Integer.class
public int compareTo(Integer anotherInteger) {
 return compare(this.value, anotherInteger.value);
}
public static int compare(int x, int y) {
 return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
import java.util.Comparator;
public class MyRule implements Comparator<Employee>{
 public int compare(Employee obj1, Employee obj2){
  return obj1.getId().compareTo(obj2.getId());
 }
}
※java.util.Collections.class
public class Collections {
 public static void sort(List list1) {
  list1.sort(null);
 }
 public static void sort(List list1, Comparator comparator) {
  list1.sort(comparator);
 }
}
public class StudyMain {
 public static void main(String[] args) {
  Employee e1 = new Employee("JavaScript", 20);
  Employee e2 = new Employee("php", 25);
  Employee e3 = new Employee("Java", 10);
  List<Employee> list = new ArrayList<>();
  list.add(e1);
  list.add(e2);
  list.add(e3);
  System.out.println("ArrayListã®æ ¼ç´é †");
  print(list);
  →20 JavaScript 25 php 10 Java
  System.out.println("MyRole.IDé †");
  Collections.sort(list, new MyRule());
  print(list);
  →10 Java 20 JavaScript 25 php
 }
 private static void print(List<Employee> list){
  for (Employee obj : list){
   System.out.println(obj.getId() + " " + obj.getName());
  }
 }
}
連想é…列(ãƒãƒƒã‚·ãƒ¥ã€ãƒ‡ã‚£ã‚¯ã‚·ãƒ§ãƒŠãƒªã€ãƒžãƒƒãƒ—)
dic.Add(1, @"西宮");
dic.Add(2, @"神戸");
dic.Add(3, @"芦屋");
Dictionary<string, string> myDic = new Dictionary<string, string>
{
  {"1Top","大久ä¿"},
  {"å·¦Wing","香å·"},
  {"å³Wing","岡崎"},
  {"Top下","本田"}
};
foreach (var element in myDic){
  string pos = element.Key;
  string name = element.Value;
};
foreach (string myKey in myDic.Keys)
{
  string pos = myKey;
  string name = myDic[pos];
};
string ret;
myDic.TryGetValue(key: 3, value: out ret);
key:3ãŒç„¡ã‘れã°nullãŒè¿”ã‚‹
ãƒã‚¤ãƒ³ã‚¿(リファレンス/デリファレンス)を使用ã—ãŸé…列ã®åˆ©ç”¨ã«ã¤ã„ã¦ã¯ã€Œãƒ—ãƒã‚°ãƒ©ãƒ 言語 ãƒã‚¤ãƒ³ã‚¿ / 連想é…列(ãƒãƒƒã‚·ãƒ¥)ã®ãƒã‚¤ãƒ³ã‚¿ã€å‚ç…§
自動整列リスト
SortedList<int, string> mySorted = new SortedList<int, string>
{
  {11,"大久ä¿"},
  {10,"香å·"},
  {9,"岡崎"},
  {4,"本田"}
};
Map<String, String> hashMap = new HashMap<String, String>();
hashMap.put("B", "Java");
hashMap.put("C", "php");
hashMap.put("A", "JavaScript");
for (Map.Entry<String, String> entry : hashMap.entrySet()){
 System.out.println(entry);
}
→B=Java C=php A=JavaScript
TreeMap
Map<String, String> treeMap = new TreeMap<String, String>();
treeMap.put("B", "Java");
treeMap.put("C", "php");
treeMap.put("A", "JavaScript");
for (Map.Entry<String, String> entry : treeMap.entrySet()){
 System.out.println(entry);
}
→A=JavaScript B=Java C=php
マップã®åˆæœŸåŒ–(匿å関数)
※lassファイルãŒ2ã¤ã§ãã¦ã—ã¾ã†ç‚ºéžæŽ¨å¥¨
public static final HashMap<String, String> pg = new HashMap<String, String>(){
 {
  put("01", "Java");
  put("02", "C#");
  put("03", "php");
  put("04", "JavaScript");
 }
};
マップã®åˆæœŸåŒ–(イニシャライザ)
private static Map<String, Double> exp;
static {
 exp = new HashMap<>();
 exp.put("VB6", 2D);
 exp.put("VB.Net", 4D);
 exp.put("Java", 3D);
 exp.put("C#", 2D);
 exp.put("PHP", 1D);
}
è¦ç´ ã®è¿½åŠ
exp.put("Python", 0.5);
exp.toString();
{C#=2.0, Java=3.0, VB.Net=4.0, PHP=1.0, VB6=2.0, Python=0.5}
è¦ç´ ã®å‰Šé™¤
exp.remove("VB6");
exp.remove("VB.Net");
exp.toString();
{C#=2.0, Java=3.0, PHP=1.0, Python=0.5}
è¦ç´ ã®å–å¾—
exp.get("Java"));
3.0
è¦ç´ ã®ä¸Šæ›¸ã
exp.put("Java", 4D);
ã‚ーãŒé‡è¤‡ã—ã¦ã„ã‚‹å ´åˆ
exp.get("Java");
4.0
è¦ç´ æ•°
exp.size());
4
ã‚ーã®å˜åœ¨ãƒã‚§ãƒƒã‚¯
exp.containsKey("Java");
true
exp.containsKey("Ruby");
false
値ã®å˜åœ¨ãƒã‚§ãƒƒã‚¯
exp.containsValue(3.0);
true
exp.containsValue(10.0);
false
ã‚ーã®Loop
for (String lungage : exp.keySet()) {
 lungage;
 C# Java PHP Python
}
値ã®Loop
for (Double year : exp.values()) {
 year;
 2.0 4.0 1.0 0.5
}
è¦ç´ ã®Loop
for (Entry
 map.getKey();
 C# Java PHP Python
 map.getValue();
 2.0 4.0 1.0 0.5
}
指定ã—ãŸå€¤ãŒç„¡ã„å ´åˆã®ãƒ‡ãƒ•ォルト値を指定ã—ã¦å–å¾—
List<String> language = Arrays.asList("Java", "C#", "PHP", "C#", "Python", "Java");
Map<String, Integer> counter = new HashMap<>();
language.forEach(s -> {
 counterã«ã‚ーãŒç„¡ã„(==null)å ´åˆã¯0ã€ã‚れã°ã‚ーã«å¯¾å¿œã™ã‚‹å€¤ã‚’å–å¾—
 Integer i = counter.getOrDefault(s, 0);
 従æ¥ã®æ›¸ãæ–¹
 Integer i = counter.get(s) == null ? 0 : counter.get(s);
 counter.put(s, i+1);
});
counter.forEach((key, value) -> {
 System.out.println(key + ":" + value);
});
C#:2 Java:2 PHP:1 Python:1
  {“key1”, “value1”}, _
  {“key3”, “value3”}, _
  {“key2”, “value2”}, _
  {“key4”, “value4”}
}
For Each element In myDic
  Dim key = element.Key
  Dim value As String = element.Value
Next element
For Each element As String In myDic.Keys
  Dim key As String = element
  Dim value As String = myDic(key)
Next element
自動整列リスト
Dim mySorted As New SortedList(Of String, String)() From { _
  {"key1", "value1"}, _
  {"key3", "value3"}, _
  {"key2", "value2"}, _
  {"key4", "value4"}
}
Dim dic As New Scripting.Dictionary
dic.Add "key1", "item1"
dic.Add "key2", "item2"
dic.Add "key3", "item3"
Dim key as Variant
For Each key In dic
  debug.print dic.item(key)
  →item1 item2 item3
Next key
ã‚ー全削除
dic.RemoveAll
※変数[ã‚ー] = 値;
var TestArray = new Object();
TestArray["key1"] = value1;
TestArray["key2"] = value2;
TestArray["key3"] = function(){ alert("value3ã§ã™ã€‚"); };
alert(TestArray["key1"]);
var strfunc = "key2"
alert(TestArray[strfunc]);
for (var i = 1; i <= 3; ++i) {
  alert["key" + i];
}
â‘¡var変数 = {ã‚ー:値 , ã‚ー:値, ・・・}
var TestArray = {
  key1:value1,
  key2:value2,
  key3:function(){ alert("value3ã§ã™ã€‚");}
}
 'php' => 'CakePHP',
 'java' => 'SpringBoot',
 'JavaScript' => 'node.js',
];
print $list['php'];
→'CakePHP'
追åŠ
$list += [
 'php' => 'Laravel',
];
dic = {
  'php':'CakePHP3',
  'python':'Django',
  'Java':'Spring-boot',
}
# 追åŠ
dic['C#'] = '.NetCore',
# 削除
del dic['C#']
# 指定ã®å€¤
print(dic.get('php')) # CakePHP3
print(dic.get('python')) # None
# ã‚ーãŒç„¡ã„å ´åˆã®å€¤ã‚‚指定
print(dic.get('python', '?')) # ?
# ã‚ー
print(dic.keys())
# dict_keys(['php', 'python', 'Java'])
# 値
print(dic.values())
# dict_values(['CakePHP3', 'Django', 'Spring-boot'])
# ã‚ーã¨å€¤
print(dic.items())
# dict_items([('php', 'CakePHP3'), ('python', 'Django'), ('Java', 'Spring-boot')])
for key in dic.keys():
  print(key)
  # php
  # python
  # Java
for value in dic.values():
  print(value)
  # CakePHP3
  # Django
  # Spring-boot
for item in dic.items():
  print(item)
  # ('php', 'CakePHP3')
  # ('python', 'Django')
  # ('Java', 'Spring-boot')
for key, value in dic.items():
  print(key, value)
  # php CakePHP3
  # python Django
  # Java Spring-boot
# å˜åœ¨ãƒã‚§ãƒƒã‚¯
print('php' in dic.keys()) # True
print('CakePHP3' in dic.values()) # True
print('CakePHP3' in dic.items()) # False
print(('php', 'CakePHP3') in dic.items()) # True
# KeyãŒå˜åœ¨ã—ãªã„å ´åˆã®ã¿è¿½åŠ
dic.setdefault('php', 'Laravel') # phpã‚ーãŒå˜åœ¨ã™ã‚‹ã®ã§è¿½åŠ ã•れãªã„
dic.setdefault('C#', '.Net') # C#ã‚ーãŒå˜åœ¨ã—ãªã„ã®ã§è¿½åŠ ã•れる
print(dic)
# {'php': 'CakePHP3', 'python': 'Django', 'Java': 'Spring-boot', 'C#': '.Net'}
$profile{"name"} = "yone"
$profile{"age"} = 35
print "$profile{'name'}\\n";
⇒yone
ãƒãƒƒã‚·ãƒ¥ã¸ã®ä¸€æ‹¬ä»£å…¥
my %profile = (
  'name' => 'yone',
  'age' => 35
);
åˆã¯
my %profile = ("name","yone","age",35)
keys
※連想é…列ã‹ã‚‰ã‚ーをå–å¾—
my $key = keys(%profile);
for my $key ( keys(%profile) ){
  $keyã«ã¯keyã ã‘ãŒå…¥ã‚‹
}
values
※連想é…列ã‹ã‚‰å€¤ã‚’å–å¾—
my $value = values(%profile);
for my $value ( values(%ary) ){
  $valueã«ã¯valueã ã‘ãŒå…¥ã‚‹
}
delete
※連想é…列ã‹ã‚‰æŒ‡å®šã®ã‚ーを削除
delete($profile{"age"});
追åŠ
$profile{新key} = ~;
exists
if ( exists($profile{ã‚ー}) ) {
  ~
}
ãƒãƒƒã‚·ãƒ¥xを全件Loop。ã‚ー⇒nameã€å€¤â‡’valueã¸æ ¼ç´ã€‚
while ( (my $name, my $value) = each(%x)){
  print "$name = $value";
}
※name,value ã®å¤‰æ•°åã¯å¤‰æ›´å¯èƒ½
ä»–
é…列・リスト変æ›
string[] array = oldList.ToArray();
array[0]:"A" / array[1]:"B" / array[2]:"C"
int[] ary = Enumerable.Range(start: 1, count: 26).ToArray();
int[] ary = Enumerable.Repeat(element: -1, count: 100).ToArray();
List<string> newList = array.ToList();
newList.AddRange(array); ã‚‚å¯
List<String> list = Arrays.asList(ary);
→Java php JavaScript
list.set(2, "C#");
→Java php C#
list.remove(2); →実行時エラー(å¤‰æ›æ™‚ã¯ã‚µã‚¤ã‚ºå›ºå®š)
  'key1' => 'java',
  'key2' => 'php',
  'key3' => 'C#',
];
$ret = array_values($ary);
$ret → ['java', 'php', 'C#'];
# タプル → リスト
after = list(before)
after[0] = 'C#' # OK
print(after) # ['C#', 'Java', 'Python']
# リスト → タプル
before = ['php', 'Java', 'Python']
after = tuple(before)
after[0] = 'C#' # エラー
Iterator/IEnumerableインターフェイス
↓ for (int i=0; i<10; i++) { ~ } ã®ï¼“ã¤ç›®ã®å‡¦ç†ã‚’çœç•¥ã—ãŸå½¢
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
 String element = iterator.next();
 Iteratorã¯è¦ç´ を変更ã§ãã‚‹
 if (element == "C#") iterator.remove();
}
System.out.println(list.toString());
[Java, PHP, Python]
IEnumerableインターフェイスã¯GetEnumerator()メソッドを実装ã—ã¦ãŠã‚Šã€
ã“れを実行ã™ã‚‹ã¨IEnumrableインターフェイスを返ã™ã€‚
é…列ã€ãƒªã‚¹ãƒˆã¯æœ€åˆã‹ã‚‰ã®ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを継承ã—ã¦ã„る。
int[] myArray = new int[] { 1,3,5,7 };
//é…列myArrayã¯IEnumerableを継承ã—ã¦ã„ã‚‹ã®ã§ã€GetEnumerator()を実行ã§ãる。
//IEnumerableインターフェイスを返ã™ã®ã§myEã«æ ¼ç´ã§ãã‚‹
IEnumerator myE = myArray.GetEnumerator();
while(myE.MoveNext())
{
  int val = (int)myE.Current;
  Console.WriteLine(val);
  ⇒ 1 3 5 7
}
// IEnumerableを継承ã„れã°â†“ ã®æ§˜ã«æ›¸ã‘ã‚‹
foreach(int n in myArray)
{
  Console.WriteLine(n);
  ⇒ 1 3 5 7
}
// ãƒªã‚¹ãƒˆã‚‚åŒæ§˜ã«IEnumerableを継承ã—ã¦ã„ã‚‹ã®ã§foreach()æ§‹æ–‡ã®ä½¿ç”¨ãŒå¯èƒ½
ArrayList myList = new ArrayList() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach(int i in myList)
{
  Console.WriteLine(i);
  ⇒ 1 2 3 4 5 6 7 8 9 10
}
「IEnumerableインターフェイス継承クラスã®è‡ªä½œã€å‚ç…§