タグ

LinkedListに関するfjwr38のブックマーク (2)

  • RubyでLinkedListを使うためのC拡張を作った | gam0022.net

    追記 10⁄7 RubyGemsとして公開。クラス名はImmutableListに変更。 RubyGems.org README(GitHub) 10⁄22 クラス名が変わったり、この記事では説明不足の部分があったので、記事を書き直しました。 Rubyで関数型プログラミングをするための ImmutableList Gem を公開 はじめに RubyのC拡張として LinkedList (連結リスト) を実装しました。 Ruby の Array は 配列で実装されているため、長いリストでの先頭への要素を追加(cons)や連結(append)が非常に遅いのをなんとかしたいと思いました。 用途としては、Rubyで再帰を使って関数型言語風にプログラムを組むことを想定しています。 ソースコードはGitHubに置きました。 gam0022/linkedlist (GitHub) 車輪の再発明じゃないの

    RubyでLinkedListを使うためのC拡張を作った | gam0022.net
  • ArrayListとLinkedListの違い その3 - syttruの日記

    こないだ書いたのが消えてしまったのでもう一度書き直します。 コンカレントなんとかエクセプション Iteratorで回すループの中でListの要素を削除した追加したりすると、コンカレントなんとかエクセプションが飛んでくるので、「Iteratorでループするときは削除しちゃらめぇ」と思いこんでました。 なので、条件を指定してリストから要素を削除するような場合、以下のようなコードを書いてたのです。 // 3で割り切れる数を排除する public void rejectMultipleOf3(List<Integer> list) { // 3で割り切れる要素のインデックスを入れるリスト List<Integer> multipleOf3IndexList = new ArrayList<Integer>(); // 3で割り切れる要素のインデックスを集める for(int i=0; i<list

    ArrayListとLinkedListの違い その3 - syttruの日記
  • 1