配列操作の比較表
もう誰かがやっていると思いますが、
配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ - bkブログを見て、
触発され、Java版を作ってみました。
お手本と同じようにRubyを基準にしています。
配列要素が参照型でないとうまくいかないところが若干反則のような気もします。
Ruby (Array) |
Java (java.util.List) |
---|---|
a = [1, 2, 3] | String[] t = {"1","2","3"}; List a = new ArrayList(); a.addAll(Arrays.asList(t)); |
a.length | a.size() |
a.empty? | a.isEmpty() |
a.push(x) | a.add(x); |
a.unshift(x | a.add(0,x); |
a.pop | a.remove(a.size()-1) |
a.shift | a.remove(0) |
a.concat(b) | a.addAll(b) |
a.clear | a.clear() |
a.insert(i, x) | a.add(i,x) |
a.delete(x) | a.remove(x) |
a.delete_at(i) | a.remove(i) |
a.nitems {|e| e == x } |   |
a.include?(x) | a.contains(x) |
a.index(x) | a.indexOf(x) |
a.first | a.get(0) |
a.last | a.get(a.size()-1) |
a[-1] | a.get(a.size()-1) |
a[i,l] | a.sublist(i,j+1) |
a[i..j] | a.sublist(i,j+1) |
a[i...j] | a.sublist(i,j) |
a.sort |   |
a.sort! | Collections.sort(a); |
a.reverse |   |
a.reverse! |   |
a.uniq! |   |
a.join(d) |   |
a.each {|x| ... } |
Iterator it = a.iterator(); while(it.hasNext()){ String x = (String) it.next(); ... } |
どちらかというとRubyのほうが
あと、Javaは配列要素がプリミティブ型だとほとんど何もできないというのも物足りないです。何とかならんのか。
他にもっとうまいやり方があるかも知れませんが、とりあえず。
ちなみにJ2SE1.4相当です。<追記> 配列の要素が整数になってたので文字列に直しました。