[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/30 22:38 / Filesize : 257 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java入門・初心者質問スレ Part.6



1 名前:デフォルトの名無しさん mailto:sageteoff [2017/12/21(木) 00:24:33.33 ID:E/ADCCn6.net]
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.5
mevius.2ch.net/test/read.cgi/tech/1506675205/

620 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 15:25:13.46 ID:QbU1NlLP.net]
>>596
50歳でも60歳でもプログラマーで生計を立ててる人はいますし、
新しい技術も吸収してます。
35歳だからと言って絶望する理由はないと思いますが。
35歳で絶望しないといけないなら、27歳でも同じですよね。
新卒の22歳のほうが鍛え甲斐があるでしょうから。
このたかが8歳の差で何が違うというのですか?
35歳という個人に対して恨みがあってそれを晴らしたいだけでは?

621 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 18:42:08.99 ID:SqnkFddM.net]
>>604
年齢歳では無く、個体差の問題です。
その35歳は、入門書を1年掛かって読み終えて基本が身に付いていません。
学習意欲も無く、答えが記載された練習問題は取り組みますが、オリジナルの問題を出されると何もしません。
実力・実績・向上心の全てが有りません。
ワード・エクセル・パワーポイントが使えると言うだけでプログラマとして入社しようとしています。
対人関係のためにサポート要員を付けろ・自席にパーティションを区切れとも言ってます。
門前払いの物件ですが、障害者の立場を悪用して採用担当が疲弊するだけなので
恨みでは無く、面倒なだけの案件を避けたいのです。

ですから、あなたに雇って

622 名前:痰ヲれば幸いです。如何でしょうか? []
[ここ壊れてます]

623 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 20:29:38.82 ID:ujPfknIU.net]
>>605
貴方の言うことが事実であれば、採用する会社はないでしょうし
何も心配をする必要はないのでは?
貴方の会社はどこにも採用されない人を必ず雇用する最後の砦か
何かなのですか?そうでないのならば何も心配はいらないですよね。
単なる私怨で35歳という個人に嫌がらせをしているだけということですよね。

624 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 20:59:33.85 ID:n2bb7ahl.net]
>>589
そういやスマホでスマホ用アプリ開発出来たらいいよな。
今でも限定的なのはあるとは思うが。もっとフルで。

625 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 22:00:23.46 ID:GdbVc+H3.net]
何か一芸に秀でちゃうとその仕事ばかり回されて
その技術とともに引退してく気がする
会社が技術者を使い捨ててる
なのでフリーになった

626 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 22:16:17.71 ID:OuWw34nm.net]
>>607
CIサービスを使うのが手っ取り早い
でもスマホの小画面で開発すると健康に悪影響あるからやめたほうがいい

627 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 23:13:40.93 ID:1H86zrpO.net]
>>606
人事システムに関わっていて採用担当の人と繋がりが有り面接に同席した事もあります。
ここまで酷い奴に出会った事は有りませんが側から見ていて担当者の苦労を知ってるだけに黙っていられませんでした。
セーフティーネットを悪用しないで自分の実力で来るなら気にしませんが
こんな奴を相手にしないといけない担当者に配慮をして頂きたいです。

言動を私怨と受け取られても構いませんから、35歳を雇ってあげて下さい。
お願いいたします。

628 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 23:47:11.46 ID:yP9Ervit.net]
>>606
横からすまんが、35歳にエサをやらないで欲しいと言うのは俺も同感なので、
可能ならば無視して欲しい。



629 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 01:01:49.92 ID:Ajqp00vh.net]
>>606
雇ってやれよ
35歳も望んでいるだろうし
嫌がらせをされる事も無くなる
ウィンウィンな関係に!

630 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 06:19:47.94 ID:lqamQU36.net]
句読点と4行以上書いてる奴は自演荒らしだから絶対触るなよ

631 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 08:35:01.42 ID:b9IDfAQu.net]
>>608
ちょっと違うが
能ある鷹は爪を隠すで渡り歩けばいい

632 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 10:37:09.05 ID:ZhCpk8UL.net]
そもそもプログラミングって楽しいのになんで仕事なんかにしちゃうの?
人からあーだこーだ言われたり自分がやりたいこと邪魔されたり
いついつまでに仕上げろとか言われたら楽しいもんも苦痛に変わっちゃう
人生すり減らしてるだけな感じがするわ
できたら仕事にはしたくないねぇ

633 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 12:10:12.16 ID:0ko73tKF.net]
資金と人員があるとできる事が全然違うからね
好きで仕事にする選択は普通にアリだよ

634 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 15:02:14.31 ID:lqamQU36.net]
寝てても出来るようなJavaの業務プログラムすら苦痛とか言ってるような
低レベルのアホはおとなしく肉体労働でもやってたほうがいい
もっともPGの仕事なんかしたことないだろうがな

635 名前:デフォルトの名無しさん [2018/01/30(火) 21:15:57.18 ID:vrBeeWhg.net]
プログラミングが楽しいというのはいかにも初心者だよな。

636 名前:デフォルトの名無しさん [2018/01/30(火) 21:18:40.71 ID:YzkDukp0.net]
あーまだ楽しいから初心者だ
楽しくなくなっていく経過例を知りたい

637 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 21:35:27.85 ID:eM1owgzQ.net]
周りの人が人海戦術であっというまにコードを破壊していく時かな
個人じゃどうやってもフォロー無理ってなるとモチベーション下が

638 名前: []
[ここ壊れてます]



639 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 22:09:53.27 ID:ZhCpk8UL.net]
でも俺の言ったこと結構効いてるんだろ?ん?わかってんだぜ^^

640 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 23:31:34.86 ID:EiN0/dmo.net]
>>620
壊れやすいコードしか書けないからそういうことになる

641 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 00:26:25.90 ID:NyuJgB/8.net]
目的地に辿り着くまでの交通手段の一つとしか思わなくなったな
適切な乗り物や経路を選ぶことこそが重要で面白い部分で、
小手先の運転技術に拘ってるうちは初心者だと思うわ

642 名前:デフォルトの名無しさん [2018/01/31(水) 01:26:23.94 ID:Mw3vWzBx.net]
旅は目的地に着くまでが楽しい。

643 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 07:51:57.75 ID:ahOKCCp+.net]
>>622
壊れにくいコードがこわされるんですよ。
強引にコードを改竄されちゃう。

644 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 09:34:02.62 ID:eYm1W8Cx.net]
>>623
A「このコースでこのタイム出た」
B「いやあのコースの方が早いし」

高確率で両者は平行線だな

645 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 09:43:29.85 ID:8wMwJPdi.net]
そもそも
可読性まで考えると下手にソフト側で工夫するより、強力なハードウェア一個入れる方がいいってのが現代だからな

646 名前:デフォルトの名無しさん [2018/01/31(水) 10:25:31.47 ID:H6iQ2Lk/.net]
>>627
それ何十年も前からそうだったように思う。

647 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 11:41:08.98 ID:5zei4l0g.net]
>>627
今だとクラウドのマネージドサービスもあるからな
ジョブのキューとかシコシコ自作する奴はもはや老害

648 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 13:24:27.52 ID:and1GARu.net]
すみませんガチの初心者なのですが、
これから勉強を始めるにあたって、おすすめの教本などありますでしょうか?



649 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 15:27:32.49 ID:xdajApn4.net]
>>630
月並みだけど、この本がいいと思う。優しく解説してある。

スッキリわかるJava入門 第2版
https://book.impress.co.jp/books/1113101090

650 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 16:53:10.44 ID:qdw2fSIB.net]
>>631
他所のスレでその本読んでる人が、本の通りと言って
ものすごく腐ったコードを貼っているので、
その本やばいんじゃないかと思う。
その人自身がすごいイカれているだけかもしれないけど。

651 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 17:03:08.02 ID:7iY/Y9hN.net]
スッキリわかるJava入門 第2版
販売開始日:2014/08/07

Java7の頃だよね。結構内容古いんじゃないの?

652 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 17:39:18.13 ID:dXfiTOdy.net]
>>632
分かってて書いてるんだろうけど、それこのスレでも暴れている
◆BrBq2CJg6HGdという頭のおかしい奴だから。
本は古いけどまともだよ。◆BrBq2CJg6HGdが勝手に間違って
解釈して暴れているだけ。

653 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 17:48:25.34 ID:8wMwJPdi.net]
そういやHeadFirstのJavaってどうなの?
デザパタ本は結構良かったけど

654 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 19:56:00.83 ID:qDSztMHL.net]
>>632
hissi.org/read.php/tech/20180131/eGRhakFwbjQ.html

655 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 20:28:44.72 ID:UcwRCwK2.net]
>>636
何このキチガイwww

656 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 20:56:55.80 ID:G7vsPfpP.net]
35歳寺バカスwww

657 名前:630 mailto:sage [2018/01/31(水) 21:00:07.79 ID:and1GARu.net]
ありがとうございます。
今の仕事に加えて2本目の柱にすべく、いちから頑張ります。
(10年前にITにいたなんて言えない。。。)

658 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 21:06:37.27 ID:AX72W1bb.net]
>>609
その辺はVR用ゴーグルにセットして3Dで



659 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 23 ]
[ここ壊れてます]

660 名前::00:20.88 ID:JDsfhD7E.net mailto: >>640
余計目が疲れるだろ
[]
[ここ壊れてます]

661 名前:スッキリ厨 mailto:sage [2018/01/31(水) 23:16:50.91 ID:ah9e2u9N.net]
まずこの本で、しっかりと、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014

その次に「たのしいRuby 第5版、2016」という道筋が、鉄板!
以後は、Python, JavaScript, C#, Kotlin など、お好きな言語へ進む

評論家・作家が集まって、数十冊のJavaの本を論じる座談会でも、
議論の半分以上を、スッキリ1冊で占めるというw

662 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 10:46:07.75 ID:9QQG1u4s.net]
新明解Javaは?

663 名前:630 mailto:sage [2018/02/01(木) 12:56:12.87 ID:8sYc2u5H.net]
すみません最初でつまづいてます
Javaをインストールし、環境変数で
PATHにC:\Program Files\Java\jdk-9.0.4\binを追加したのですが、
CMDでJavacと入れても認識しません
設定がおかしいのでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 12:58:09.42 ID:BE+0VHY8.net]
そうでしょうね。

665 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 12:59:31.72 ID:BE+0VHY8.net]
>>642
議論になるということは、すっきりしていないってことではw

666 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 13:27:02.26 ID:8sYc2u5H.net]
すみません解決しました
お騒がせしました。。。

667 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 17:21:42.52 ID:8zqI8Ogw.net]
>>614
隠し事できない人なんだ

668 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 20:30:45.92 ID:oxpJbmOB.net]
(´・ω・`)何か文句ある?



669 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 12:40:30.43 ID:vZ7npXAS.net]
>>644
どんな古い情報を見てやってるのかわからないけど、今はインストーラがやるからそんなパス指定する必要がないというか、やると更新の時に面倒だからやってはいけない
それ外してやったらどうなる?

670 名前:デフォルトの名無しさん [2018/02/02(金) 13:16:01.06 ID:7Sd8400T.net]
え?今はインストーラがやってくれるの?いつの間にそうなったんだ?
じゃあPATHに追加しといたやつ外すか。

671 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 14:10:13.76 ID:jKEKNKAT.net]
Java1.8.0_91はpath手入力必要だったぞ。

672 名前:デフォルトの名無しさん [2018/02/02(金) 14:30:41.89 ID:s+WUZnzv.net]
JREと勘違いしてんだろ。

673 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 16:53:37.95 ID:KuhLinCY.net]
感情の原因はそれを感じる者自身の固定観念・価値観・自己ルール
解釈の原因は情報発信者ではなく受信者。誤解の原因も解釈者
「言葉 風紀 世相の乱れ」はそう感じる人の心の乱れの自己投影
問題解決力の低い者ほど自己防衛の為に礼儀作法やマナーを要求する
憤怒は無知 無能の自己証明。中途半端な知識主ほど辛辣に批判する
論理的思考力の低い者ほどデマ宗教フェイク迷信に感化傾倒陶酔洗脳
史上最も売れているトンデモ本は聖書。神は人間の創造物
全ては必然。偶然 奇跡 理不尽 不条理は思考停止 視野狭窄の産物
人生存在現象に元々意味価値理由目的はない
「真実は一つ」は錯誤。執着する者ほど矛盾を体験(争い煩悩)する
宗教民族領土貧困は争いの原因ではなく「理由口実動機言訳切欠」
社会問題の根本原因は低水準教育。必要なのは適切十分な高度教育
体罰は指導力・問題解決力の乏しい教育素人の独善甘え怠慢責任転嫁
死刑は民度の低い排他的集団リンチ殺人。「死ねば償える」は偽善
核武装論は人間不信と劣等感に苛まれた臆病な外交素人の精神安定剤
投票率低下は社会成熟の結果。奇人変人の当選は議員数過多の徴候

感情自己責任論 〜学校では教えない合理主義哲学〜 m9`・ω・)

674 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 13:09:18.63 ID:LDloXLSS.net]
ArrayListはArrayList独自のメソッドを使わなければList型で宣言すべきとあったのですが、
LinkedListも同様にList型で宣言したほうが良いのでしょうか?

675 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 14:40:05.82 ID:3WnFr6b6.net]
Windowsコマンドプロンプトで実行させて文字列を表示する時に
奇数行と偶数行とで文字の色を変えたいのですがどうすればできるのでしょうか?

676 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:26:30.39 ID:3WnFr6b6.net]
比較文で==を=にしててもコンパイル通ってしまうために、たまに間違えたまま気づかないことあるんだけど
間違わないようにするライフハック的なものは何かないですか

677 名前:デフォルトの名無しさん [2018/02/03(土) 15:50:25.92 ID:0PCikDkt.net]
ヨーダ記法はどうなんすかね?
if (x = 0) 通っちゃう
if (0 = x) 通らない

678 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:56:11.82 ID:ZHqj1jBJ.net]
>>655
やめたほうがいい
LinkedListはgetがO(N)なので、不用意に混ぜるとパフォーマンス劣化の原因になる恐れがある
Javaのよく知られた設計上の欠陥だよ



679 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:56:26.08 ID:3WnFr6b6.net]
両方変数の場合はどうするのでしょうか?

680 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:59:56.33 ID:I3vkx3c9.net]
>>657
定数との比較だと、左辺を定数にしたりするけど、最近は嫌われる。

681 名前:デフォルトの名無しさん [2018/02/03(土) 16:25:54.75 ID:hQBrYqp7.net]
左辺w

682 名前: mailto:sage [2018/02/03(土) 16:31:05.72 ID:hgzMgIyl.net]
>>659
それは変だ、かってに混ざることはないよ

683 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 16:59:13.66 ID:ZHqj1jBJ.net]
>>663
混ぜたい(というか区別したくない)からListにするんだよ
常にこのコレクションの実体はLinkedListだと意識してるんならLinkedListのまま扱えばいい
その方がより「意図の伝わる」コードになる

684 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 17:42:09.54 ID:VDv79Nx+.net]
>>656
エスケープシーケンスを使うとできると思う(但しコマンドプロンプトの設定に左右される可能性はある)。
以下のページはC言語で作ったサンプルがあるが参考になると思う。
https://www.grapecity.com/tools/support/powernews/column/clang/047/page02.htm

685 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 18:31:16.63 ID:RDoavzQ+.net]
LinkedListの要素アクセスがO(N)なのはそういうデータ構造だから仕方ないんじゃないのか?
その代わり要素の挿入とか削除がArrayListより高速な利点があるわけだし用途によって向き不向きがあるだけ

686 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 18:36:59.57 ID:T/IRCOLF.net]
>>665
ありがとうございます
とりあえずやってみたらそのまま表示されただけだったので
面倒なので諦めます

687 名前:デフォルトの名無しさん [2018/02/03(土) 19:00:05.99 ID:YCx21dTa.net]
>>666
意図を明確にするためにListインターフェースを使うべきじゃないよね

688 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 19:06:33.31 ID:LDloXLSS.net]
>>655です
>>659 >>663 >>664 >>666 >>668
ありがとうございました。LinkedListはLinkedListということで
ListはΟ(1) でLinkedListはΟ(N) なので自分や他人が



689 名前:混乱しないためにもLinkedListのままで良いと・・・多分 []
[ここ壊れてます]

690 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 19:08:07.71 ID:uBCfwyBi.net]
使うべきかどうかは文脈によるが、あえて一般化するならListインターフェースにすべき。
データ構造をどうすべきかは、インスタンス化のときだけは関心があるが、実際にアクセスしたり挿入したりするときに気にならないようにしておくのが抽象化という考え方。

691 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 19:10:55.15 ID:uBCfwyBi.net]
>>669
Listはインターフェースなので、計算量とかない。
そのロジックでLinkedListで宣言するならArrayListもArrayListと宣言すべき。
>>670にも書いたが、何を抽象化したいかはときと場合によるので、どっちがいいとか悪いとかない。
ただ、一貫性がないのは悪いと言えよう。

692 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 19:20:16.63 ID:ZHqj1jBJ.net]
>>671
それは極論
現実にはほとんど全てのケースにおいてリンクリストより配列ベースのリストの方がパフォーマンスやメモリ効率に優れているんだから、
リンクリストの存在なんか無視してListの実装は全てランダムアクセス可能であるという前提で作るのは実用的判断としては悪くない
.NETは現にそうなってるね

693 名前:デフォルトの名無しさん [2018/02/03(土) 20:51:19.18 ID:YCx21dTa.net]
>>671
抽象データ構造として計算量はあるべきだと思うよ
ArrayListはインデックスでアクセスするならArrayListを使うべきだよ

694 名前:デフォルトの名無しさん [2018/02/03(土) 20:52:59.73 ID:YCx21dTa.net]
JavaのListインターフェースはゴミと言っていいでしょう

695 名前:デフォルトの名無しさん [2018/02/03(土) 20:55:21.26 ID:YCx21dTa.net]
うそです、言い過ぎました本当にごめんなさい

696 名前:デフォルトの名無しさん [2018/02/03(土) 20:56:30.47 ID:YCx21dTa.net]
MapでさえもHashMapとTreeMapで計算量違うんで
Listインターフェースの実装によって計算量が違うのも
認めるべきだと思い直しました

697 名前:デフォルトの名無しさん [2018/02/03(土) 20:57:51.86 ID:YCx21dTa.net]
違うのか、ListインターフェースもMapインターフェースも
ゴミだという結論も出せるのか

698 名前:デフォルトの名無しさん [2018/02/03(土) 20:59:28.16 ID:YCx21dTa.net]
インターフェースは奥が深いということで



699 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 21:24:43.36 ID:VDv79Nx+.net]
>>667
変だなと思ってこちら(Windows10)でやってみたら確かにできなかった。
作ったプログラムはこんなやつだ。

public class EscSeq {
 public static void main(String[] args) {
  for (int i = 31; i <= 37; i++)
   System.out.println("\u001b[" + i + "mABC\u001b[0m");
 }
}

こういう出力になった。

[31mABC[0m
[32mABC[0m
[33mABC[0m
[34mABC[0m
[35mABC[0m
[36mABC[0m
[37mABC[0m

ところが実行時に以下のように Perl の何もしないプログラムにただ出力を渡してそのまま出力させてみたら色が付いて出た。

java EscSeq | perl -pe ""

この perl は Cygwin の perl だ。とすると Cygwin のライブラリが実行時に何かしているのかも知れない。
とすると同じことができれば Java でも同じようになるだろうとは思うが、今のところ俺にはやり方がわからない。

700 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 21:27:46.33 ID:VDv79Nx+.net]
>>667
もう一つ色を出す方法を発見。プログラムの出力をファイルにリダイレクトしてからそのファイルを type コマンドで出力したら色が出た。
とすると java コマンドが何か変なのかも知れないが、どういうことなのかよくわからないね。

701 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 22:04:14.38 ID:Vrj5+lre.net]
適切な抽象度合いは文脈によるって言ってんだろうが
なにがいいとか悪いとかない

702 名前: mailto:sage [2018/02/03(土) 22:05:12.43 ID:hgzMgIyl.net]
>>672
配列ベースは概念は簡単で便利だけれども、削除や挿入のコストは考えないといけないのではないでしょうか?
そういうときはリンクリストベースの方が適している

703 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 22:25:13.44 ID:aUhNWyY8.net]
>>682
いや、途中削除挿入が少々あったとしても配列リストのほうがほとんどの場合において速い
リンクリストってとんでもなくメモリ効率の悪いデータ構造なんだよ

704 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 22:38:51.39 ID:aUhNWyY8.net]
ついでに言っておくと、Listのaddやremoveを使ってLinkedListにインデックス指定して途中への挿入や削除をしたらO(N)だ
LinkedListのパフォーマンスの恩恵を受けるためには必ずListIteratorを使わなければならない
逆にArrayListでわざわざListIteratorを使う意味なんかないわけで、そういう点でも両者を一括りにして抽象化する意味はほとんどないのよ

705 名前:デフォルトの名無しさん [2018/02/03(土) 23:29:16.51 ID:N6/Ci9xF.net]
LinkedListはLinkedHashMapのためのクラス。
LinkedHashMapは、LRUとかでよく使う。

706 名前: mailto:sage [2018/02/03(土) 23:41:38.70 ID:hgzMgIyl.net]
>>683
配列ベースでの挿入や削除は、オブジェクトのコピーが延々と繰り返される点を考えれば、重大なコストですよ
単にコピーするだけならまだしも、コピーコンストラクタが働くことは、これは大きなコストだから、できるだけ避けないといけないのでは?
これは私が C++er だから考えてしまうことなのだろうか?

リンクリストでの挿入や削除では、コピーコンストラクタは働かない(既存のオブジェクトに手が加わらない)。
リンクリストの効率が悪い、というのは、リンクリストのメリットに触れない、一面的な意見に思えます

707 名前: mailto:sage [2018/02/03(土) 23:45:32.04 ID:hgzMgIyl.net]
>>684
>Listのaddやremoveを使ってLinkedListにインデックス指定して途中への挿入や削除をしたらO(N)だ

それはおかしい、抽象オブジェクトやインターフェースを介しているからといって、実装側の効率が極端に変わることはありえない
List がリンクリストな実体を指しているのなら、そのメソッドは、リンクリストの効率に従うはず

708 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 00:58:59.24 ID:fXO59JwO.net]
>>686
そうだけど Java の場合は参照だから C++ に置き換えて考えればポインタの配列になる。
だからコストは掛かるんだけど思ったほど遅い感じがしない。

それと実際の実装は一つ追加したら即配列全体を作り直すみたいになっておらず、
大きめに配列確保しておいてそれをオーバーするまでは同じ配列を使い続けて
その中でのコピーになるから要素数が少ないと気になるほど遅くならない。



709 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 01:45:48.83 ID:0M2nQfAn.net]
>>687
挿入や削除の前に、指定されたインデックスの位置までポインタを手繰らないといけないからね
getもそうだけど、Listインターフェースに宣言されているから実装せざるを得ないだけで
本来存在すべきではない操作だよ

710 名前:デフォルトの名無しさん [2018/02/04(日) 05:00:56.17 ID:2KjySip0.net]
>>685
いいこと言った

711 名前: mailto:sage [2018/02/04(日) 05:35:13.14 ID:p5zvJFKF.net]
>>689
>挿入や削除の前に、指定されたインデックスの位置までポインタを手繰らないといけないからね
なるほど
たしかに二分探索を実装する必要があるなら、それは配列ベースになるだろうね

712 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 08:42:48.25 ID:jtpbEfK1.net]
Javaで巨大なコレクションの途中に挿入するコストが気になるっていったいどんなプログラムなんだろう

713 名前: mailto:sage [2018/02/04(日) 09:30:01.09 ID:p5zvJFKF.net]
>>692
巨大なコレクションだからこそ、List の挿入削除の実装に気を使うべきなんですよ
1000件 2000件の小さなリストならどっちでもいい

714 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 09:39:06.01 ID:jtpbEfK1.net]
>>693
だからそんな巨大で変更可能なコレクションを使う場面ってどんな時なのかなって

715 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 10:47:54.78 ID:mA+9NwN1.net]
ないよ。
普通そこはクエリの調整のほうが効きやすいし分業しやすいから。
しかもそんな長大レコードの途中にオンメモリで値挿入とか狂気じみてる。

716 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 11:37:52.68 ID:S3cdJ5Jy.net]
百歩譲って巨大なコレクションの途中へ挿入する必要があったとして、
挿入位置が予め決まっていなければリンクリストのメリットはないわけだが(689の理由で)、そんな状況あるのか?
挿入位置までのリンクリストのシーケンシャルスキャンのコストが無視できるくらい沢山の要素をまと

717 名前:゚て挿入するのだとしても、
その場合は配列でブロックコピーした方が速そうだな
[]
[ここ壊れてます]

718 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 11:50:08.04 ID:S3cdJ5Jy.net]
ソート済みの巨大なリスト同士をマージするときには使えるかな?
と思ったけど新しい配列リスト作ってそこに追加してった方が速いだろうな
インプレースで処理できるといっても、もともとリンクリストはメモリをバカ食いするから本末転倒だし



719 名前: mailto:sage [2018/02/04(日) 11:57:14.26 ID:p5zvJFKF.net]
>>695
オンメモリとは限らないのでは?
普通にリンクリストでデータ構造が実装されている例はいくらもあると思うよ、二分木、多分木になる場合や
順序関係・比較関数が単純でない場合は特に

まあ List でまとめる必要ははなからないことは自明だけれども

720 名前:デフォルトの名無しさん [2018/02/04(日) 12:07:50.83 ID:GvS2o5m7.net]
>>694
そこでLinkedHashMapですよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef