凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 48909
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

いらっしゃいませ。Programming SHOT BARへようこそ。
プログラムはアルゴリズムがよく語られますが、もうひとつ主要な材料があります。 それは、データ構造です。

適切なデータ構造を選べば、アルゴリズムはシンプルにすっきりします。 マッチしないデータ構造ではフォローのためにアルゴリズムが複雑になりますし、 性能も劣化してしまいます。

まさにプログラムはアルゴリズムとデータ構造のカクテルと言えましょう。

集計処理

業務で実績データを元に集計することはありませんか?
表示形式としては2次元の表になることが多いと思います。 2次元のデータを表現するときに、真っ先に思いつくのは2次元配列でしょう。*

配列の最大の弱点は配列長が不変であることです。 この点は可変長配列、というかいわゆるコレクションAPIのjava.util.Listを使えば解決できますが、 2次元のListではインデックスが分かっていないと該当のオブジェクトにアクセスできません。

インデックスよりjava.util.Mapのような、いわゆるハッシュテーブルの方が勝手がよい場合も多いです。 そこで、Map型を格納したMapを考えることにいたるわけですが、 この最大の弱点は外側のMapのキー → 内側のMapのキーという順序でしかアクセスできないところです。
配列やListの場合はインデックスでのアクセスなので逆順でもアクセスできるのですけどね。

Mapの2次元化

Mapを2次元にする場合、キーの順序が固定化される問題を解決しなければなりません。 ここはひとつ、原始的に冗長化して解決してみましょう。

ソースが200行ほどになったので別途ダウンロードしてください。

TableMap.java

部分的にだけ解説します。

 @param <XT> X方向のキーの型
 @param <YT> Y方向のキーの型
 @param <V> 値の型
 */
public class TableMap<XT, YT, V> {
  /** Xキーのソートに用いるComparator */
  Comparator<XT> xComparator;
  /** Yキーのソートに用いるComparator */
  Comparator<YT> yComparator;

  /** X → Y の順で値に到達する木 */
  TreeMap<XT, TreeMap<YT, V>> xTree;
  /** X → Y の順で値に到達する木 */
  TreeMap<YT, TreeMap<XT, V>> yTree;

ジェネリクスの型パラメータはキーキーはX方向とY方向の2つ、それから格納するデータ型とで3つとなります。
内部情報として保持するのはソート用のComparatorが2種、X方向のキーのものと、Y方向のキーのもの。 それから、X→Y順でエントリにアクセスするための2段TreeMap、Y→X順のTreeMapとなります。

冗長化して状態をもつので、不整合が起こると早期に検出してExceptionをthrowするようにしてあります。
変わったところというと142行目からの

    // 2段目ツリーが空になった場合
    // エントリを削除
    if (xEntry.isEmpty() ^ yEntry.isEmpty()) {
      throw new IllegalStateException("内部状態の不整合");
    }

ここで、if文でXOR演算子を使っています。こんなときでもないと使いませんからねぇ…。

作成秘話

実はこのクラス、3代目です。

最初に2次元のMapを思いついたのは1年以上前に業務で集計処理を書いているときだったのですが、 当初は2次元配列を作って自前でObject#hashCode()でインデックスを決めて~とガリガリ作っていました。
リハッシュとかもあってえらく難しい作りになってしまったのですが、 Mapの実装をjava.util.HashMap式ではなく、2分木にしたらどうかと思ったのです。

それで、自前で2分木を作ってたんですが、エントリのクラスを作ってVisitorパターンで エントリを走査するようになってコード量も多いし難しいものになってしまいました。 しかし、単にjava.util.TreeMapを重ねるだけの作りにしたら偉くすっきりしてしまったというわけです。

2分木方式だとアクセスコストが高いので、ハッシュ式も綺麗に作り直したいところですね。



* Javaには厳密には2次元配列はなく、正確には配列型の配列となりますが、 実際には非矩形配列として使うことはレアケースですね。

投稿日時 : 2007年8月25日 14:40
コメント
  • # re: データ構造を考える - 2次元のMap
    επιστημη
    Posted @ 2007/08/25 19:17
    おもしろーい♪ C++でre-writeしてみよかしら。

    // XTとYTの型が同じときどないしましょ?
    // 姓と名から住所を引き当てる辞書TableMap<String,String,String> addressBook;
    String address = addressBook.get("田中","一郎");
    String address = addressBook.get("一郎","田中");
    ...区別がつかんです。
  • # re: データ構造を考える - 2次元のMap
    かつのり
    Posted @ 2007/08/25 19:37
    この辺は自前で作るか、コレクションフレームワークを組み合わせるかで悩みますね。
    自前で作ると汎用性の面で不便だったりするのですが、
    コレクションフレームワークのインターフェイスを実装させるのが面倒だったりします。

    汎用性の面で不便というのは、MapやListやSetを利用するAPIが使えないという意味です。
  • # re: データ構造を考える - 2次元のMap
    凪瀬
    Posted @ 2007/08/25 20:48
    > XTとYTの型が同じときどないしましょ?

    おわ~。えぴさんが釣れた~w
    この例ではオーバーロードでの表現が無理なんで、メソッド名を変えていますが…
    C++のジェネリクスだとどうなるんでしたっけ?w

    > MapやListやSetを利用するAPIが使えない

    なんせ、そもそもエントリにアクセスするのにキーが2ついるんで、インターフェースが合わないんですよね。

    Iterableとか継承のしようがないw
  • # re: データ構造を考える - 2次元のMap
    επιστημη
    Posted @ 2007/08/25 22:36
    --- おためし ---
    template<typename X,typename Y>
    class foo {
      X x_;
      Y y_;
    public:
      void set(const X& x) { x_ x; }
      void set(const Y& y) { y_ y; }
    };


    int main() {
      foo<int,int> f;
      f.set(3);
    }

    VC++8に食わすと:
    error C2535: 'void foo<X,Y>::set(const X &)' : メンバ関数は、既に定義または宣言されています。
    ってなります(ったりめーだけど)
    setX,setYみたくメソッド名を変えるっきゃないすねー
  • # re: データ構造を考える - 2次元のMap
    かつのり
    Posted @ 2007/08/26 5:27
    自分で作るとなると、implements Map<TX,Map<TY, V>>みたいな感じになるのかな・・・
    でもコレクションフレームワークって
    実装しなきゃいけないメソッドが多くてめちゃくちゃメンドイ。
  • # re: データ構造を考える - 2次元のMap
    凪瀬
    Posted @ 2007/08/26 23:47
    Map<TX,Map<TY, V>>だとキーの順序が固定されるのが嫌なんですよね。
    縦計、横計を出すときとかに縦横無尽にアクセスできるデータ構造は強みがあります。
    どちらかを主としてimplementsして反対の順序でのキーアクセスもサポートするよ、というアプローチもあるとは思いますが。
  • # データ構造を考える - 2次元のMap その2
    凪瀬 Blog
    Posted @ 2007/09/25 18:18
    データ構造を考える - 2次元のMap その2
  • # BNTQbkvMYeYVOCQMUnJ
    http://crorkz.com/
    Posted @ 2014/08/28 14:47
    c49RJO I'm not sure why but this weblog is loading very slow for me. Is anyone else having this issue or is it a issue on my end? I'll check back later and see if the problem still exists.
  • # CsYGxnGvnXNRks
    http://www.arrasproperties.com/
    Posted @ 2014/09/08 18:57
    I am typically to blogging and i actually respect your content. The article has really peaks my interest. I am going to bookmark your website and preserve checking for brand spanking new information.
  • # WLkfzLDanJiQEQas
    https://www.youtube.com/edit?video_id=CSuUco_72Vs
    Posted @ 2014/09/13 17:04
    you've got a great weblog here! would you wish to make some invite posts on my blog?
  • # ROSLATzSXgXNWEa
    http://youtu.be/VI1nFVEsujo
    Posted @ 2014/09/18 16:22
    An fascinating dialogue is worth comment. I feel that it is best to write more on this topic, it won't be a taboo subject but usually persons are not enough to talk on such topics. To the next. Cheers
  • # cartier love bracelet price uk replica
    gbivcra@aol.com
    Posted @ 2015/08/07 0:59
    Good points Steve. I think the level of analysis you’re talking about is probably beyond me. Time to bring in some of those high-paid senior DBAs at our headquarters in New York.
    cartier love bracelet price uk replica http://www.fashionlovejewellery.com/tag/lady-cartier-love-bracelet
  • # Cartier bracelet rose gold replica
    dfluwdlo@aol.com
    Posted @ 2015/08/27 1:06
    Le libre sous windows ça existe. sisi
    Cartier bracelet rose gold replica http://www.menslovejewelry.com/fake-cartier-love-bracelet-transfer-everlasting-love/
  • # 高級時計 ブランド レディース
    zdycibaws@solid.ocn.ne.jp
    Posted @ 2017/06/19 16:15
    ◆ スタイルが多い、品質がよい、価格が低い!
    ● SS品質 シリアル付きも有り 付属品完備!
    ◆ 必ずご満足頂ける品質の商品のみ販売しております.
    ● 品質を最大限本物と同等とする為に相応の材質にて製作している為です.
    ◆ 絶対に満足して頂ける品のみ皆様にお届け致します.
    人気の売れ筋商品を多数取り揃えております。
    全て激安特価でご提供.お願いします.
  • # バーキンバッグコピー品
    paceqnipzya@icloud.com
    Posted @ 2017/07/13 13:35
    2017年人気貴族エルメス コピー安心専門店、
    一流ブランドショップ、シャネル コピー、
    付属品完備!送料は無料です(日本全国)!
    ご注文を期待しています!100%品質保証 
    満足保。※日本國送料無料、信用第一、
    バーキンバッグコピー品 http://www.kopi356.com
  • # カルティエ時計コピー品
    fuuvhttgso@nifty.com
    Posted @ 2017/09/07 10:11
    ヴィトンコピー品激安販売店2017新品大SALE
    ルイ・ヴィトンコピー品激安販売店の新品大SALEが開催します。
    ルイヴィトン人気コピー品、コピールイヴィトン新作、ルイヴィトンダミエコピー、ルイヴィトンモノグラムコピー、コピーブランド腕時計…
    いろいろ新品が続々登場します。バッグ、靴、帽子、スカーフ...
    お綺麗を展示ため、ぜひおすすめの逸品です。
    時間の制限がない、いつでもご愛用頂きます。
    カルティエ時計コピー品 http://www.kopi356.com
  • # ルイヴィトンコピー財布
    pawopoh@softbank.jp
    Posted @ 2017/09/07 10:11
    人気腕時計
    2017新作の展示,新品種類がそろっています!
    当社の商品は絶対の自信が御座います。
    ★信用第一、良い品質、低価格は(*^-^*)
    ★当店の承諾に→誠実 信用
    ★送料無料(日本全国)
    ※ご注文の方は、ご連絡下さい。期待!!
    ※以上 宜しくお願い致します。(^0^)
    ルイヴィトンコピー財布 http://www.nawane111.com/panerai.htm
  • # エルメスンコピーetc
    ksfyylbybk@hotmail.co.jp
    Posted @ 2017/09/18 19:45
    初めて購入させていただきました。
    商品状態も良く、梱包も丁寧で気持ちよく受取りできました。
    信頼できるショップだと思いましたありがとうございます。
    エルメスンコピーetc http://www.kopii.net/products/p3/3/index.htm
  • # カルティエ最高品質時計
    mbhcoi@excite.co.jp
    Posted @ 2017/10/15 6:24
    迅速な対応とキチンとした梱包をありがとうございました。
    また、商品も綺麗で素敵な物でした。
    信頼と信用出来るショップ様です。
    カルティエ最高品質時計 http://www.kopii.net/products/p2/6/index.htm
  • # コピー時計
    okuuic@live.jp
    Posted @ 2017/10/24 2:51
    信じてよかったです。
    本当にありがとうございました。
    エルメス 時計 ケリー2 KT1.230 Q刻印 SS 白文字盤 4Pダイヤ クォーツ レディース 新品 ケリーウォッチ ブラック 婦人 女性 HERMES
    最高(^^♪
    元値が高価商品のモノだったので悩みましたが、信じてよかったです。気に入ってます&#127925;
    コピー時計 http://www.kopii.net
  • # ブランド コピー
    gcsijexrycf@goo.ne.jp
    Posted @ 2017/10/28 7:53
    弊社は「信用第一」をモットーにお客様にご満足頂けるよう、

    発送前には厳しい検査を通じて製品の品質を保証してあげますとともに、
    配送の費用も無料とし、品質による返送、交換、さらに返金までも実際 にさせていただきます。
    また、従業員一同、親切、丁寧、迅速に対応 させて頂き、ご安心になってお買い物を楽しんでくださるよう精一杯力 を尽くしていくつもりです。

    送料は無料です(日本全国)! ご注文を期待しています!
    下記の連絡先までお問い合わせください。

    是非ご覧ください!
    ブランド コピー http://www.yamamo78.com/index.htm
  • # ブランド財布
    gsvdvdj@ybb.ne.jp
    Posted @ 2017/10/30 11:27
    2017年春夏新作商品大好評中
    ★━┓+┏━┓☆。
    ┃★┣━┫●┣━┓*
    ┗━┫○┣━┫◎┃
      ┗━┛ ┗━☆
     * +  +*
    2017新しいリリースシャネルシャネルシャネルの靴超■超-N製品!
    ◆靴超N超N品通販のブランドボッテガ ヴェネタの靴
    評判第一、品質リリーフ最低価格保証
    良い品質、低価格、評判最初の本当の写真
    ブランド財布 http://www.newkakaku.net
  • # You made some decent points there. I checked on the net for more info about the issue and found most people will go along with your views on this website.
    You made some decent points there. I checked on th
    Posted @ 2019/04/05 3:23
    You made some decent points there. I checked on the net
    for more info about the issue and found most people will go along with your
    views on this website.
  • # iuMTpEbOQfmLLX
    https://www.suba.me/
    Posted @ 2019/04/16 2:18
    vu0Ajf Thanks-a-mundo for the article. Want more.
  • # MoJENkIHPcEyDQqGjv
    https://www.suba.me/
    Posted @ 2019/04/19 17:41
    DN6bjS topic of unpredicted feelings. Feel free to surf to my web blog; how to Get rid Of dark Circles
  • # obwaPzDlvXoa
    https://www.suba.me/
    Posted @ 2019/04/22 19:51
    XRbjWu It'а?s actually a cool and helpful piece of info. I am happy that you just shared this helpful information with us. Please stay us up to date like this. Thanks for sharing.
  • # zHMbIaGoHNLKayzZdv
    http://www.frombusttobank.com/
    Posted @ 2019/04/26 20:07
    Just what I was searching for, thanks for posting.
  • # UTJdPwhJlez
    http://www.frombusttobank.com/
    Posted @ 2019/04/26 22:33
    Yes. It should do the job. If it doesn at send us an email.
  • # kDlOJBuzwLJGSH
    https://www.collegian.psu.edu/users/profile/harry2
    Posted @ 2019/04/27 4:12
    You have brought up a very wonderful points , thankyou for the post.
  • # KfrumxedTpiBPHt
    https://is.gd/mlybUx
    Posted @ 2019/04/28 5:41
    Well I truly enjoyed reading it. This article procured by you is very helpful for accurate planning.
  • # ICdRJUnpFM
    http://add.proedublog.xyz/story.php?title=curso-de
    Posted @ 2019/05/01 0:37
    This page truly has all the information and facts I wanted about this subject and didn at know who to ask.
  • # lmHkJQyIaQHBrGGhqMx
    https://www.budgetdumpster.com
    Posted @ 2019/05/01 18:51
    I really value your piece of work, Great post.
  • # SxdRQYJGgvMd
    http://tiresailor0.ebook-123.com/post/-fire-exting
    Posted @ 2019/05/01 21:47
    You are my inspiration , I have few blogs and occasionally run out from to brand.
  • # QqKbETluuOwAYovP
    http://prodonetsk.com/users/SottomFautt803
    Posted @ 2019/05/02 4:02
    You have made some decent points there. I checked on the internet for more information about the issue and found most people will go along with your views on this site.|
  • # gneCfHumETVrKUh
    http://www.21kbin.com/home.php?mod=space&uid=9
    Posted @ 2019/05/02 18:14
    Just wanna admit that this is handy , Thanks for taking your time to write this.
  • # qIllMlfynAqDIB
    http://gaus.ru/bitrix/redirect.php?event1=&eve
    Posted @ 2019/05/03 8:22
    start to end. Feel free to surf to my website Criminal Case Cheats
  • # PXLlYaITao
    https://mveit.com/escorts/united-states/san-diego-
    Posted @ 2019/05/03 12:16
    In it something is also to me this idea is pleasant, I completely with you agree.
  • # qFDxqboyqfwJYzfWX
    https://mveit.com/escorts/netherlands/amsterdam
    Posted @ 2019/05/03 17:19
    you could have an important weblog here! would you prefer to make some invite posts on my weblog?
  • # bDIAQMIzsYZFTCSrvxm
    https://mveit.com/escorts/united-states/houston-tx
    Posted @ 2019/05/03 20:12
    It as just letting clientele are aware that we are nevertheless open up for home business.
  • # KHKRZUospm
    https://talktopaul.com/pasadena-real-estate
    Posted @ 2019/05/03 21:41
    Wow, fantastic blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your website is wonderful, let alone the content!
  • # xFoJcDHqVFSBfTtABa
    http://astrom-ekb.ru/bitrix/redirect.php?event1=&a
    Posted @ 2019/05/04 0:01
    Thanks-a-mundo for the blog article.Thanks Again. Much obliged.
  • # WoKZWVPKeaFjp
    http://absolatte.com/__media__/js/netsoltrademark.
    Posted @ 2019/05/04 0:45
    Im no expert, but I think you just made the best point. You definitely fully understand what youre talking about, and I can seriously get behind that. Thanks for staying so upfront and so genuine.
  • # caomzVDjhwddYZ
    https://timesofindia.indiatimes.com/city/gurgaon/f
    Posted @ 2019/05/04 4:43
    Whoa! This blog looks exactly like my old one! It as on a entirely different topic but it has pretty much the same page layout and design. Outstanding choice of colors!
  • # bYEdJvjlegjSgy
    https://docs.google.com/spreadsheets/d/1CG9mAylu6s
    Posted @ 2019/05/05 18:31
    Thanks, I ave recently been looking for info about this subject for a while and yours is the greatest I ave found out so far. However, what concerning the bottom line? Are you sure about the source?
  • # Whats up this is kind of of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code with HTML. I'm starting a blog soon but have no coding know-how so I wanted to get guidance from someone with experience. Any h
    Whats up this is kind of of off topic but I was w
    Posted @ 2019/05/06 20:01
    Whats up this is kind of of off topic but I was wanting to know if
    blogs use WYSIWYG editors or if you have to manually code
    with HTML. I'm starting a blog soon but have no coding know-how so
    I wanted to get guidance from someone with experience.
    Any help would be greatly appreciated!
  • # rZkxdmKhdkKX
    https://www.newz37.com
    Posted @ 2019/05/07 15:39
    that as why this post is outstdanding. Thanks!
  • # eecyzYISsHcECKdpZ
    https://www.mtpolice88.com/
    Posted @ 2019/05/08 3:54
    Major thanks for the article.Much thanks again. Much obliged.
  • # BKCRtElLWa
    http://www.jodohkita.info/story/1546257/#discuss
    Posted @ 2019/05/08 20:20
    Your style is really unique compared to other folks I ave read stuff from. Many thanks for posting when you have the opportunity, Guess I will just bookmark this blog.
  • # PhhFfIQaHXeLkkhB
    https://grahamkeyreview.home.blog/2019/04/12/cheap
    Posted @ 2019/05/08 22:09
    Spot on with this write-up, I truly think this web site wants way more consideration. I?ll probably be once more to learn way more, thanks for that info.
  • # A person necessarily lend a hand to make severely posts I might state. This is the very first time I frequented your web page and thus far? I surprised with the analysis you made to make this actual put up incredible. Magnificent job!
    A person necessarily lend a hand to make severely
    Posted @ 2019/05/09 1:04
    A person necessarily lend a hand to make severely posts I might state.

    This is the very first time I frequented your web page and thus far?
    I surprised with the analysis you made to make this actual
    put up incredible. Magnificent job!
  • # raZmYKblmJRkqiHfx
    https://www.youtube.com/watch?v=Q5PZWHf-Uh0
    Posted @ 2019/05/09 1:18
    Thanks so much for the article.Thanks Again. Fantastic.
  • # WqtnZhTklFbxqKYEE
    http://www.skyads.aero/author/aspenpark/
    Posted @ 2019/05/09 10:11
    I truly appreciate this article.Much thanks again. Fantastic.
  • # zEvnCRyYOKXZOtTG
    https://pbase.com/lisakrause/image/169101403
    Posted @ 2019/05/09 11:02
    It is best to participate in a contest for among the best blogs on the web. I all suggest this web site!
  • # gEhSpoMMtpEavWOtO
    http://mohammad9029il.webteksites.com/be-prepared-
    Posted @ 2019/05/09 19:55
    Thanks for an concept, you sparked at thought from a angle I hadn at given thoguht to yet. Now lets see if I can do something with it.
  • # FAeURlfqhX
    https://www.ttosite.com/
    Posted @ 2019/05/10 1:03
    Thankyou for this terrific post, I am glad I discovered this website on yahoo.
  • # fSNRwjUJeYqm
    https://www.mtcheat.com/
    Posted @ 2019/05/10 1:56
    Very neat blog article.Much thanks again. Really Great.
  • # vdOwCFptfVDFNrIxICD
    http://mickiebussiekwr.rapspot.net/the-upshot-prov
    Posted @ 2019/05/10 2:03
    Some genuinely excellent info , Gladiolus I observed this.
  • # RicXQRrdRRTkXuO
    https://totocenter77.com/
    Posted @ 2019/05/10 4:11
    Rattling fantastic info can be found on site.
  • # kAQAmObYCTlp
    https://disqus.com/home/discussion/channel-new/the
    Posted @ 2019/05/10 5:51
    You might have some genuine insight. Why not hold some kind of contest for your readers?
  • # pJgPMwybILXa
    https://bgx77.com/
    Posted @ 2019/05/10 6:22
    Terrific paintings! That is the type of info that should be shared across the internet. Shame on Google for now not positioning this post upper! Come on over and visit my web site. Thanks =)
  • # xcbJgSkVPtbsfSm
    https://argentinanconstructor.yolasite.com/
    Posted @ 2019/05/10 13:29
    Im grateful for the article post.Much thanks again. Want more.
  • # JmqvbgVKqVmvBqFjHX
    https://zzb.bz/43nqX
    Posted @ 2019/05/10 22:20
    IaаАа?б?Т€Т?а?а?аАа?б?Т€Т?аБТ?ll create a hyperlink towards the internet page about my private weblog.
  • # vdjCfkNRxH
    http://www.usefulenglish.net/story/427604/#discuss
    Posted @ 2019/05/11 3:43
    Very good blog.Much thanks again. Want more.
  • # nwZpbYudHnkMEH
    https://www.ttosite.com/
    Posted @ 2019/05/12 19:57
    You made some respectable factors there. I appeared on the web for the problem and found most individuals will go together with with your website.
  • # uTRdOvcUIG
    https://www.sftoto.com/
    Posted @ 2019/05/12 22:59
    So that as one So that tends to move in the corner. Adam compares the three big players, michael kors handbags,
  • # WkrJLLLqwDIMVSbV
    https://www.mjtoto.com/
    Posted @ 2019/05/12 23:43
    Really enjoyed this article post.Much thanks again. Great.
  • # zyQgrUWkHUZwBtbad
    https://www.ttosite.com/
    Posted @ 2019/05/13 18:45
    This is a topic that as close to my heart Cheers! Where are your contact details though?
  • # WfGjnzcBRMGVaw
    https://www.smore.com/uce3p-volume-pills-review
    Posted @ 2019/05/13 21:55
    pretty handy stuff, overall I feel this is really worth a bookmark, thanks
  • # HwwfkNTmZaUqojkZqxV
    https://www.navy-net.co.uk/rrpedia/User:HattieNort
    Posted @ 2019/05/14 8:40
    ought to take on a have a look at joining a word wide web based romantic relationship word wide web website.
  • # YXTXyOStfH
    http://www.paleoconnect.com/member/blog_post_view.
    Posted @ 2019/05/14 9:32
    Rattling great info can be found on website.
  • # AURIgMxroFCpVHMXy
    http://fashionseo8b2r4p.innoarticles.com/see-the-t
    Posted @ 2019/05/14 19:40
    Well I definitely enjoyed reading it. This subject procured by you is very effective for good planning.
  • # bJugySfzaLgVnusRGNo
    https://bgx77.com/
    Posted @ 2019/05/14 21:47
    mobile phones and WIFI and most electronic applianes emit hardcore RADIATION (think Xray beam microwave rays)
  • # bCuaJqcgYCg
    http://www.fdbbs.cc/home.php?mod=space&uid=291
    Posted @ 2019/05/15 7:16
    I used to be able to find good info from your articles.
  • # ylJeJojLjLSKWtOE
    https://www.talktopaul.com/west-hollywood-real-est
    Posted @ 2019/05/15 14:03
    Spot taking place with this write-up, I rightly ponder this website wants much further issue. I all in every probability be yet again to read a long way additional, merit for that info.
  • # xHmSzDGwFTTHiTVW
    http://biznes-kniga.com/poleznoe/okazanie_ritualny
    Posted @ 2019/05/15 21:51
    There is certainly a lot to find out about this subject. I love all of the points you ave made.
  • # KCgmMJCWWkxSswSy
    https://www.kyraclinicindia.com/
    Posted @ 2019/05/15 23:57
    I?ll right away clutch your rss as I can at to find your e-mail subscription link or newsletter service. Do you ave any? Please allow me know in order that I may subscribe. Thanks.
  • # Hey! I could have sworn I've been to this site before but after browsing through some of the post I realized it's new to me. Anyways, I'm definitely glad I found it and I'll be bookmarking and checking back often!
    Hey! I could have sworn I've been to this site bef
    Posted @ 2019/05/16 7:12
    Hey! I could have sworn I've been to this site before but after browsing through some of the post I realized it's new to me.
    Anyways, I'm definitely glad I found it and I'll be bookmarking and checking back often!
  • # YHknoCYbtLwyJYVDGY
    http://200.1.25.44/userinfo.php?uid=366320
    Posted @ 2019/05/16 20:35
    You should participate in a contest for probably the greatest blogs on the web. I all recommend this web site!
  • # SBDvrXbVRIHQIiUm
    https://reelgame.net/
    Posted @ 2019/05/16 20:58
    pretty valuable stuff, overall I imagine this is well worth a bookmark, thanks
  • # This is the right site for anyone who would like to find out about this topic. You understand a whole lot its almost hard to argue with you (not that I personally would want to…HaHa). You certainly put a fresh spin on a topic which has been discussed fo
    This is the right site for anyone who would like t
    Posted @ 2019/05/17 4:54
    This is the right site for anyone who would like to find out about this topic.

    You understand a whole lot its almost hard to argue with you (not that I personally would want to…HaHa).
    You certainly put a fresh spin on a topic which has been discussed for a long time.
    Great stuff, just excellent!
  • # YMVArtvQGiXkAboFt
    https://www.youtube.com/watch?v=Q5PZWHf-Uh0
    Posted @ 2019/05/17 5:43
    There as noticeably a bundle to find out about this. I assume you made certain beneficial things in features also.
  • # PLBAeYDzSkdtz
    https://www.youtube.com/watch?v=9-d7Un-d7l4
    Posted @ 2019/05/17 18:40
    There is definately a lot to know about this subject. I love all of the points you made.
  • # lBDVHeuAMy
    http://childpsy.ru/bitrix/redirect.php?event1=&
    Posted @ 2019/05/18 1:58
    In my opinion you are not right. I am assured. Write to me in PM, we will discuss.
  • # ZlYvtuoUuCOmMWGAJh
    http://aimfunds.biz/__media__/js/netsoltrademark.p
    Posted @ 2019/05/18 4:31
    What as up, just wanted to tell you, I loved this post. It was practical. Keep on posting!
  • # JMoNYieKkvafQdYbC
    https://nameaire.com
    Posted @ 2019/05/20 16:44
    What as Happening i am new to this, I stumbled upon this I ave found It absolutely useful and it has helped me out loads. I hope to contribute & help other users like its aided me. Good job.
  • # AsYgaOzgvQyFbIa
    http://www.exclusivemuzic.com/
    Posted @ 2019/05/21 3:05
    Jak mona tumaczy przysowia Lidaria Biuro Tumacze Warszawa
  • # dDkGAsokfAEhEa
    https://whipfamily1windschultz237.shutterfly.com/2
    Posted @ 2019/05/22 21:46
    You ave got the most impressive webpages.|
  • # DNfSkQskbQRP
    https://totocenter77.com/
    Posted @ 2019/05/23 1:22
    Many thanks for sharing this very good piece. Very inspiring! (as always, btw)
  • # BFaTSOnBjlErdw
    http://imamhosein-sabzevar.ir/user/PreoloElulK795/
    Posted @ 2019/05/23 5:29
    There is noticeably a lot to realize about this. I feel you made certain good points in features also.
  • # fNqkjOwfBXwb
    https://www.ccfitdenver.com/
    Posted @ 2019/05/23 16:24
    I wish people would compose much more about this while you have done. This is something which is very essential and possesses been largely overlooked through the world wide web local community
  • # vafMyxLERJd
    https://www.nightwatchng.com/&#8206;category/d
    Posted @ 2019/05/24 0:38
    Wonderful issues altogether, you simply won a new reader. What would you suggest in regards to your publish that you made a few days ago? Any certain?
  • # xrYDNpsgmJwQVT
    https://www.talktopaul.com/videos/cuanto-valor-tie
    Posted @ 2019/05/24 6:37
    Some truly great blog posts on this web site , thanks for contribution.
  • # ybTDYjsJQuQ
    http://codlaura1.blogieren.com/Erstes-Blog-b1/Find
    Posted @ 2019/05/24 23:11
    Remarkable record! I ran across the idea same advantaging. Hard test in trade in a while in the direction of realize if further positions am real augment.
  • # apUzViDIqzwfdS
    https://bgx77.com/
    Posted @ 2019/05/27 20:29
    when it comes when it comes to tv fashion shows, i really love Project Runway because it shows some new talents in the fashion industry**
  • # LPVqhkDwBIGyqaazD
    https://www.mtcheat.com/
    Posted @ 2019/05/28 1:08
    Much more people today need to read this and know this side of the story. I cant believe youre not more well-known considering that you undoubtedly have the gift.
  • # ScJAKoXDFXTMLkNbW
    http://bestofwecar.world/story.php?id=19820
    Posted @ 2019/05/29 0:05
    It as nearly impossible to find well-informed people in this particular subject, however, you sound like you know what you are talking about! Thanks|
  • # gjstKxTZxTAeJAlDWag
    https://www.ghanagospelsongs.com
    Posted @ 2019/05/29 20:01
    you ave gotten an ideal weblog right here! would you like to make some invite posts on my weblog?
  • # dMoZWSOmNSb
    https://totocenter77.com/
    Posted @ 2019/05/30 0:49
    wow, awesome blog article.Much thanks again. Fantastic.
  • # JNEqgkaBiVBlPFVe
    https://www.mtcheat.com/
    Posted @ 2019/05/30 4:52
    It as not that I want to replicate your web-site, but I really like the style and design. Could you let me know which theme are you using? Or was it especially designed?
  • # BRtywUgyucnWcz
    https://postheaven.net/truckcannon36/know-what-to-
    Posted @ 2019/05/30 5:21
    Wow, great article post.Thanks Again. Awesome.
  • # wfwuRkUWtEKemEbTc
    https://ygx77.com/
    Posted @ 2019/05/30 5:54
    Im obliged for the article.Really looking forward to read more. Keep writing.
  • # THcBOFwTlREAJDXy
    https://www.mjtoto.com/
    Posted @ 2019/05/31 15:42
    year and am anxious about switching to another platform. I have
  • # KBZIPNgOttBDdjo
    http://ihaan.org/story/1074062/
    Posted @ 2019/06/01 2:09
    Many thanks for Many thanks for making the effort to line all this out for people like us. This kind of article was quite helpful to me.
  • # rfDVGOLSUo
    https://www.ttosite.com/
    Posted @ 2019/06/03 18:18
    Major thankies for the blog post.Much thanks again. Awesome.
  • # uvZxXYlauHaosTjdS
    https://totocenter77.com/
    Posted @ 2019/06/03 22:16
    sleekness as well as classiness. An elegant ladies watch that
  • # MoItWRywQY
    http://bashgaz.ru/bitrix/rk.php?goto=https://ask.g
    Posted @ 2019/06/03 22:47
    You will discover your selected ease and comfort nike surroundings maximum sneakers at this time there. These kinds of informal girls sneakers appear fantastic plus sense more enhanced.
  • # nRNbhpHAuAMcpj
    http://forumfashion.website/story.php?id=18131
    Posted @ 2019/06/04 13:12
    I think this is a real great blog post.Thanks Again. Really Great.
  • # LrEdKOpmNLCApyc
    http://ihaan.org/story/1061710/
    Posted @ 2019/06/04 15:35
    You have brought up a very great details , thanks for the post.
  • # lLizdsYHOQgyERqkAY
    https://www.mjtoto.com/
    Posted @ 2019/06/05 20:22
    Im no professional, but I suppose you just crafted the best point. You definitely comprehend what youre talking about, and I can truly get behind that. Thanks for staying so upfront and so honest.
  • # TAOtlIEIoVvFVHlve
    https://mt-ryan.com/
    Posted @ 2019/06/06 0:31
    So pleased to possess located this post.. My browsing efforts seem total.. thanks. Liking the article.. appreciate it Respect the entry you furnished..
  • # ywixGFOaFOt
    https://ygx77.com/
    Posted @ 2019/06/07 17:17
    Really enjoyed this blog post. Really Great.
  • # RgjqHFxCjMGaD
    https://www.bloglovin.com/@thomasshaw/what-are-nut
    Posted @ 2019/06/07 19:27
    Rtl horoscope haas horoscope poisson du jour femme
  • # ABUQggvEduTiz
    https://youtu.be/RMEnQKBG07A
    Posted @ 2019/06/07 20:39
    This very blog is obviously awesome as well as factual. I have picked a bunch of helpful things out of this source. I ad love to visit it every once in a while. Cheers!
  • # RzlWguwaYiH
    https://totocenter77.com/
    Posted @ 2019/06/07 22:52
    I went over this site and I conceive you have a lot of wonderful info, saved to fav (:.
  • # PXdtzxZsgbkNoXeGt
    http://glasstubing.site/story.php?id=22838
    Posted @ 2019/06/07 22:57
    You created some decent points there. I looked on the net for that challenge and discovered most of the people will go coupled with with all of your internet site.
  • # gZCYTdJicH
    https://www.mtpolice.com/
    Posted @ 2019/06/08 6:29
    Major thanks for the blog. Really Great.
  • # MesKbyalNGdrqZDCpsH
    https://betmantoto.net/
    Posted @ 2019/06/08 10:36
    This website has lots of extremely useful info on it. Thanks for sharing it with me!
  • # rceFoVifnwtJAdd
    https://ostrowskiformkesheriff.com
    Posted @ 2019/06/10 15:45
    to win the Superbowl. There as nothing better wholesale
  • # LLFgEliXdUJJjdCT
    http://court.uv.gov.mn/user/BoalaEraw540/
    Posted @ 2019/06/11 23:31
    Thankyou for this wonderful post, I am glad I noticed this internet site on yahoo.
  • # FajmGJVHTmePtsLUNp
    http://bgtopsport.com/user/arerapexign646/
    Posted @ 2019/06/13 6:45
    Really appreciate you sharing this blog.Much thanks again. Much obliged.
  • # PzRjThduDiunZ
    https://www.hearingaidknow.com/comparison-of-nano-
    Posted @ 2019/06/14 15:46
    Major thanks for the article post.Much thanks again. Much obliged.
  • # kUVCCtgCIiW
    https://www.openlearning.com/u/bricklarch26/blog/C
    Posted @ 2019/06/14 19:55
    I think other website proprietors should take this web site as an model, very clean and fantastic user friendly style and design, as well as the content. You are an expert in this topic!
  • # EqsEwvTvvOKFeUPw
    https://blogfreely.net/dayline01/find-out-greatest
    Posted @ 2019/06/14 22:20
    What as up, just wanted to mention, I loved this blog post. It was inspiring. Keep on posting!
  • # MsKhdUDnvPxELzo
    http://secretgirlgames.com/profile/gaila726538
    Posted @ 2019/06/15 2:09
    Some really select posts on this site, saved to fav.
  • # AlpkQIHmvPqUhC
    http://mazraehkatool.ir/user/Beausyacquise269/
    Posted @ 2019/06/15 4:29
    Im obliged for the blog post.Really looking forward to read more. Fantastic.
  • # wJQMDInQGyxoUx
    https://www.homofilms.be
    Posted @ 2019/06/17 21:49
    Im obliged for the blog post.Much thanks again. Keep writing.
  • # Hello! This is my 1st comment here so I just wanted to give a quick shout out and say I genuinely enjoy reading your articles. Can you suggest any other blogs/websites/forums that cover the same topics? Appreciate it!
    Hello! This is my 1st comment here so I just want
    Posted @ 2019/06/18 8:17
    Hello! This is my 1st comment here so I just wanted to give a quick shout out and say I genuinely enjoy reading your articles.
    Can you suggest any other blogs/websites/forums that cover the same topics?
    Appreciate it!
  • # sSmHuptdmRffrw
    https://romyhouse.wordpress.com/2019/06/17/what-ex
    Posted @ 2019/06/18 19:34
    I reckon something genuinely special in this site.
  • # TKqoXwdLXTRyXh
    https://blog.irixusa.com/members/crackduck70/activ
    Posted @ 2019/06/19 23:44
    Merely wanna say that this is extremely helpful, Thanks for taking your time to write this.
  • # hbhhhhiMLgZjpEP
    http://freedomsroad.org/community/members/townnumb
    Posted @ 2019/06/20 18:16
    This excellent website definitely has all of the info I wanted about this subject and didn at know who to ask.
  • # pqOdhbUQBxFbhhO
    https://blogfreely.net/singerchange41/auto-warrant
    Posted @ 2019/06/22 2:39
    I think this is a real great blog.Really looking forward to read more. Fantastic.
  • # rtUeJnloTNbGLgtC
    https://www.vuxen.no/
    Posted @ 2019/06/22 3:45
    I went over this internet site and I believe you have a lot of great information, saved to favorites (:.
  • # NVFbmAeDGwtuUVOV
    http://diegoysuscosaslyb.nightsgarden.com/bias-off
    Posted @ 2019/06/24 5:31
    Very neat blog.Really looking forward to read more. Really Great.
  • # upltZPaNdgAlIPMZRmp
    http://diegoysuscosasjou.wpfreeblogs.com/they-also
    Posted @ 2019/06/24 7:45
    you made running a blog look easy. The overall glance
  • # vbTcsudwtlSsJUc
    https://www.healthy-bodies.org/finding-the-perfect
    Posted @ 2019/06/25 3:43
    Im obliged for the blog article. Want more.
  • # tRiCXvMixc
    http://www.agriverdesa.it/index.php?option=com_k2&
    Posted @ 2019/06/25 5:43
    Merely a smiling visitant here to share the love (:, btw great design. аАТ?а?а?аАТ?а? Treat the other man as faith gently it is all he has to believe with.аАТ?а? аАТ?а?а? by Athenus.
  • # irLcMoKAGpCUnWy
    https://topbestbrand.com/&#3626;&#3621;&am
    Posted @ 2019/06/25 23:51
    Outstanding quest there. What happened after? Good luck!
  • # fECRgKyWHH
    https://topbestbrand.com/&#3610;&#3619;&am
    Posted @ 2019/06/26 4:51
    write about here. Again, awesome website!
  • # OzDzYIBZGpyBhqF
    https://tyresepritchard.de.tl/
    Posted @ 2019/06/26 9:38
    Lovely site! I am loving it!! Will be back later to read some more. I am taking your feeds also
  • # yICHTupiEbyIhUJYVG
    http://all4webs.com/horseunit29/gffajuhmuy748.htm
    Posted @ 2019/06/26 14:30
    Woman of Alien Perfect work you might have finished, this site is admittedly awesome with fantastic info. Time is God as way of maintaining everything from happening at once.
  • # oqodITmNwfize
    http://poster.berdyansk.net/user/Swoglegrery357/
    Posted @ 2019/06/26 16:03
    I really liked your post.Much thanks again. Much obliged.
  • # DdeGWoHUqxZKnybyZJ
    https://zysk24.com/e-mail-marketing/najlepszy-prog
    Posted @ 2019/06/26 21:04
    Some great points here, will be looking forward to your future updates.
  • # DNNPmFzBTMuiVLJY
    http://speedtest.website/
    Posted @ 2019/06/27 17:35
    I was suggested this website by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my trouble. You are incredible! Thanks!
  • # epUVkuYHUbhkQUTOxS
    https://saveyoursite.win/story.php?title=cbap-cert
    Posted @ 2019/06/27 18:02
    to your post that you just made a few days ago? Any certain?
  • # ugcopYsxslbx
    http://metaeaspets.world/story.php?id=9324
    Posted @ 2019/06/29 1:44
    that type of information in such a perfect means of writing?
  • # rIpJwyhdyeBJ
    https://emergencyrestorationteam.com/
    Posted @ 2019/06/29 8:15
    wonderful issues altogether, you simply received a new reader. What might you recommend in regards to your publish that you simply made some days ago? Any sure?
  • # dprvWdULYtAp
    http://www.localbookmark.it/company/Robs_Towing_Re
    Posted @ 2019/06/29 12:48
    wow, awesome article post.Really looking forward to read more. Fantastic.
  • # mujcFrfUPWylcPV
    https://amzn.to/365xyVY
    Posted @ 2021/07/03 3:03
    I really liked your article post.Really looking forward to read more.
  • # re: ????????? - 2???Map
    hydroxychloroquine 200 mg twice a day
    Posted @ 2021/08/08 0:14
    chlorquine https://chloroquineorigin.com/# difference between chloroquine phosphate and hydroxychloroquine
  • # oziniwqacevm
    audhec
    Posted @ 2022/05/09 4:20
    quinine for lupus https://keys-chloroquinehydro.com/
  • # ルイ ヴィトン アイホンケース
    zgeudutx@excite.co.jp
    Posted @ 2023/11/11 5:07
    良い消息!良い消息!
    HEMRMESのブランドが必要で、注意します!
    当店、エルメス専門店。
    予約購入した後。
    あなたの特恵を与えた意外な喜びに。
    以下の条件を保証します:
    価格、特恵を与えます。
    必要な取引先、メールは連絡します。
    品質はとても良いです。
    使いを信じて、最も良いです。
    保証して、広大で、取引先は好きです。
    ルイ ヴィトン アイホンケース https://www.b2tokei.com/product/detail.aspx?id=10358
タイトル
名前
Url
コメント