#appengine 複数値プロパティの並び順は保証される

0
佐々木竹充/SASAKI TAKERU @urekat

listプロパティって順番保証されてましたっけ?もちろんSetじゃなくてListで入れた場合。 http://bit.ly/cuneNj #appengine

2010-02-25 21:40:36
Yasuo Higa@ISID @yasuo_higa

@urekat Protocol Bufferの仕様を見るのが確実ですが、listはそのまま保存されているはず #appengine > listプロパティって順番保証されてましたっけ?

2010-02-26 10:48:59
Yasuo Higa@ISID @yasuo_higa

#appengine のCollectionで順序が保証されないのはSetを使った場合、SortedSetなら大丈夫。じゃないとSortedSetがサポートされている意味がない。LLAPI的にはListで扱われます

2010-02-26 11:16:01
fragilecode @fragilecode

@higayasuo Set系はSortedSetなら順番保持されるんですね。Listの場合も保持されるのでしょうか?

2010-02-26 12:18:30
Yasuo Higa@ISID @yasuo_higa

@fragilecode LLAPI的にはList(しか受け付けない)なので順番は保持されるはずですよ #appengine

2010-02-26 12:22:00
佐々木竹充/SASAKI TAKERU @urekat

@higayasuo ありがとうございます。すなおな実装ならそうなるはずですしね。仕様がどうなのかが見つからないのです。Java/PythonのAPI層でどうなってるのか、PB層でどうなってるのか。 #appengine

2010-02-26 12:50:10
佐々木竹充/SASAKI TAKERU @urekat

@higayasuo http://bit.ly/cuneNj TreeSet may be returned as a List ってあるからsetかlistを受け付けないですかね?ためしてないけど。

2010-02-26 13:05:02
Yasuo Higa@ISID @yasuo_higa

@urekat repeated elementsにThe order of the elements with respect to each other is preserved書いてあるので順番は保証されるはず http://ow.ly/1bshr #appengine

2010-02-26 13:09:49
Yasuo Higa@ISID @yasuo_higa

@urekat SetやSortedSetはJDO/JPAを意識してのことだと思います。受け付けるのはListだけ #appengine

2010-02-26 13:11:29
Kazunori Sato @kazunori_279

@higayasuo 実際上は保証されていると私も思ってますが、なぜ http://bit.ly/cuneNj に "All Collections are prone to losing their sort order"と書いているかが謎です…

2010-02-26 13:13:17
Yasuo Higa@ISID @yasuo_higa

前にも書いたけど(前はPBのドキュメントへのリンクも張った)、PBの繰り返しは順序が保証されているのでListの順序は保証されているはずです #appengine

2010-03-13 11:03:15
Yasuo Higa@ISID @yasuo_higa

LLAPIの中では繰り返し(Collection)はArrayListで扱われています。LLAPIに渡すときにはCollectionなら大丈夫だけど、LLAPIから受け取るときはすべてArrayListです #appengine /j

2010-03-13 11:11:16
Yasuo Higa@ISID @yasuo_higa

#appengine /jがいろいろなList,Set,SortedSetをサポートしているように見えるのは各種ライブラリがArrayListから変換しているからです。内部的にはArrayListのみ

2010-03-13 11:13:46