【Java】重複のない順序つきのcollection

備忘録的な
1
わかめ@毎日猫がいる @vvakame

ListかつSetなクラスってなんかなかったっけ?

2012-09-12 12:16:04
あめ玉/もわもわ @amedama

@vvakame Listというより順序があるSetっすか

2012-09-12 12:25:58
zaki50 @zaki50

@vvakame Java なら LinkedHashSet というものが

2012-09-12 12:26:35
NaOHaq(苛性ソーダ) @NaOHaq

@amedama @vvakame Ordered Setだとなんかorderingが半順序とかで外から与えられてそうなイメージがあるんだけど、そうでなくList的に追加した順で並んでるものということなのかしら

2012-09-12 12:29:00
あめ玉/もわもわ @amedama

@NaOHaq @vvakame ああそうねぇ……。普通に @zaki50 さんの言ってるLinkedHashSetでいいんじゃないかしら。

2012-09-12 12:30:43
わかめ@毎日猫がいる @vvakame

@amedama @NaOHaq @zaki50 ぶっちゃけ順序有りSetからget(int)したいだけなのでListである必要は全然ないのだった。

2012-09-12 12:33:50
zaki50 @zaki50

@amedama @NaOHaq @vvakame 追加順なら LinkedHashSet で、順序が Comparator や Comparable で与えられるなら SortedSet(のサブクラスの TreeSet) かなと。まずは

2012-09-12 12:33:54
わかめ@毎日猫がいる @vvakame

@bina1204 get(int) が欲しいだけとかそういう…。

2012-09-12 12:35:43
zaki50 @zaki50

@vvakame インデックスでアクセスしたいなら LinkedHashSet は効率良いとはいえないので、どういう使い方するかによって変わるな

2012-09-12 12:37:16
NaOHaq(苛性ソーダ) @NaOHaq

@vvakame @amedama @zaki50 むにゅ、iterateするんじゃなくて整数indexによる取りだしが必要なのですか?

2012-09-12 12:37:49
わかめ@毎日猫がいる @vvakame

@zaki50 単に set.iterator().next() とかやるの長くて辛い。

2012-09-12 12:38:02
わかめ@毎日猫がいる @vvakame

(とりあえずやたら長いコード書いて解決した)

2012-09-12 12:38:32
zaki50 @zaki50

@vvakame 全部にアクセスするんじゃなくて、特定の一つだけ参照したいってことだよね。LinkedHashSet は線形リストをたどることしかできないはず

2012-09-12 12:40:41
zaki50 @zaki50

@vvakame 標準ではなかった気がする

2012-09-12 12:41:44
あめ玉/もわもわ @amedama

@vvakame @NaOHaq @zaki50 ADT一個でうまくいく気がしないので衝突をSetで検出してもう一個ArrayListを持つというヘボい実装で良い気がします

2012-09-12 12:42:35
zaki50 @zaki50

@amedama @NaOHaq @vvakame 想定する要素数が少ないなら ArrayList 一個でもいい

2012-09-12 12:43:15
わかめ@毎日猫がいる @vvakame

@amedama @NaOHaq @zaki50 addとかaddAllした時にcontainsでチェックするだけでもいい気がする…。

2012-09-12 12:43:18
びな @bina1204

@vvakame トンチンカンなツイート、ごめんなさい。get(int) 持ってる Set は知らないです

2012-09-12 12:45:49
わかめ@毎日猫がいる @vvakame

@bina1204 いえいえ!ありがとうございました!

2012-09-12 12:46:04