• 締切済み
  • すぐに回答を!

スレッドの問題で

山手線と京浜東北線の路線図をもとにスレッドを作るという問題で 京浜東北線ルートは 大宮>浦和>川口>赤羽>田端>日暮里>上野>秋葉原>東京>浜松町>品川>蒲田>川崎>横浜>大船 で終わる。 山手線ルートは 田端>日暮里>上野>秋葉原>東京>浜松町>品川>渋谷>新宿>池袋 といってまた田畑に戻る。 条件 1.山手線は周回運転し、京浜東北は往復運転する。 2.山手線の各駅間の所要時間は1秒。 3.京浜東北線の所要時間は山手線と同一区間は1秒。京浜東北線のみの区間は1.533秒とする。 4.京浜東北線は終着駅。大宮駅、大船駅に到着した場合は3秒間 停車するものとする。 /*出力結果 山手線:東京につきました。 山手線:東京をでました。                京浜東北線:大船につきました。 山手線:浜松町につきました。 山手線:浜松町をでました。 山手線:品川につきました。 山手線:品川をでました。 山手線:渋谷につきました。 山手線:渋谷をでました。                  京浜東北線:大船をでました。 山手線:新宿につきました。 山手線:新宿をでました。                  京浜東北線:横浜につきました。                  京浜東北線:横浜をでました。 山手線:池袋につきました。 山手線:池袋をでました。 */ スレッドをつかって上の出力結果をだしたいのですがどのようにしたらよいのかわかりません!! どのようにしたらうえの出力結果が得られますか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数192
  • ありがとう数1

みんなの回答

  • 回答No.2
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)

一応作ってみました。 質問文のような動きをするだけなら、こんなふうに作る必要はないような気もします... バグってたらすみません。適当に直して下さい。 ---------------------------------------------------------------- import java.util.*; class 駅 { String 駅名; double 起点距離;//起点からの距離(時間で代替) double 停車時間; public 駅(String name, double range, double stopTime){ 駅名 = name; 起点距離 = range; 停車時間 = stopTime; } } /* 京浜東北線 大宮>浦和>川口>赤羽>田端>日暮里>上野>秋葉原>東京>浜松町>品川>蒲田>川崎>横浜>大船 山手線 田端>日暮里>上野>秋葉原>東京>浜松町>品川>渋谷>新宿>池袋 */ class 路線 { static final 路線 京浜東北線; static final 路線 山手線; static { 京浜東北線 = new 路線("\t\t京浜東北線"); 京浜東北線.始点 = new 駅("大宮", 0.0 , 3.0/2);//発着で3秒 京浜東北線.駅リスト.add(京浜東北線.始点); 京浜東北線.駅リスト.add(new 駅("浦和", 1.533, 0.0)); 京浜東北線.駅リスト.add(new 駅("川口", 3.066, 0.0)); 京浜東北線.駅リスト.add(new 駅("赤羽", 4.599, 0.0)); 京浜東北線.駅リスト.add(new 駅("田端" , 6.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("日暮里", 7.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("上野" , 8.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("秋葉原", 9.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("東京" ,10.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("浜松町",11.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("品川" ,12.132, 0.0)); 京浜東北線.駅リスト.add(new 駅("蒲田", 13.665, 0.0)); 京浜東北線.駅リスト.add(new 駅("川崎", 15.198, 0.0)); 京浜東北線.駅リスト.add(new 駅("横浜", 16.731, 0.0)); 京浜東北線.終点 = new 駅("大船", 18.264, 3.0/2); 京浜東北線.駅リスト.add(京浜東北線.終点); 山手線 = new 路線("山手線"); 山手線.始点 = new 駅("田端" , 0.0, 0.0); 山手線.駅リスト.add(山手線.始点); 山手線.駅リスト.add(new 駅("日暮里", 1.0, 0.0)); 山手線.駅リスト.add(new 駅("上野" , 2.0, 0.0)); 山手線.駅リスト.add(new 駅("秋葉原", 3.0, 0.0)); 山手線.駅リスト.add(new 駅("東京" , 4.0, 0.0)); 山手線.駅リスト.add(new 駅("浜松町", 5.0, 0.0)); 山手線.駅リスト.add(new 駅("品川" , 6.0, 0.0)); 山手線.駅リスト.add(new 駅("渋谷" , 7.0, 0.0)); 山手線.駅リスト.add(new 駅("新宿" , 8.0, 0.0)); 山手線.駅リスト.add(new 駅("池袋" , 9.0, 0.0)); 山手線.終点 = new 駅("田端" ,10.0, 0.0); 山手線.駅リスト.add(山手線.終点); } String 路線名; LinkedList<駅> 駅リスト = new LinkedList<駅>(); 駅 始点; 駅 終点; public 路線(String name){ 路線名 = name; } } class 列車 implements Runnable { static enum 運行 { 往復, 循環 }; static enum 方向 { 順行, 逆行 }; Thread aThread; 路線 aLine; 運行 運転; 方向 進行方向; boolean 運行中 = true; public 列車(路線 line, 運行 dir) { aThread = new Thread(this); aLine = line; 運転 = dir; 進行方向 = 方向.順行; } public void start() { aThread.start(); } public void 停止(){ 運行中 = false; } public void run() { ListIterator<駅> itr; while(運行中){ if(進行方向 == 方向.順行){ itr = aLine.駅リスト.listIterator(0); while (itr.hasNext()) { 駅 station = itr.next(); if(aLine.始点 != station){ System.out.println(aLine.路線名+":"+station.駅名+"につきました。"); } if(itr.hasNext()){ try { Thread.sleep((long)(station.停車時間*1000)); System.out.println(aLine.路線名+":"+station.駅名+"をでました。"); int index = itr.nextIndex(); 駅 次の駅 = aLine.駅リスト.get(index); Thread.sleep((long)(Math.abs(次の駅.起点距離 - station.起点距離)*1000)); } catch (InterruptedException e){} } } } else { // 逆行 itr = aLine.駅リスト.listIterator(aLine.駅リスト.size()); while (itr.hasPrevious()) { 駅 station = itr.previous(); if(aLine.終点 != station){ System.out.println(aLine.路線名+":"+station.駅名+"につきました。"); } if(itr.hasPrevious()){ try { Thread.sleep((long)(station.停車時間*1000)); System.out.println(aLine.路線名+":"+station.駅名+"をでました。"); int index = itr.previousIndex(); 駅 次の駅 = aLine.駅リスト.get(index); Thread.sleep((long)(Math.abs(次の駅.起点距離 - station.起点距離)*1000)); } catch (InterruptedException e){} } } } if(運転 == 運行.往復){ 進行方向 = (進行方向 == 方向.順行)? 方向.逆行 : 方向.順行; } } } } public class Railway { public static void main(String args[]) { 列車 train1 = new 列車(路線.山手線, 列車.運行.循環); 列車 train2 = new 列車(路線.京浜東北線, 列車.運行.往復); train1.start(); train2.start(); try{ Thread.sleep(5*60*1000);//5分待つ } catch (InterruptedException e){} train1.停止(); train2.停止(); } }

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます! サンプル例をみてこれとは、別に自分なりにスレッドを作成しました!

関連するQ&A

  • 山手線

    現在山手線と言われている駅は 実際は田端?新宿?品川が山手線ときいたのですが それ以外の駅は何線なのでしょうか? 京浜東北と並走している部分は 山手線の駅でも京浜東北線ですか?

  • 横浜から田端駅まで 朝ラッシュについて

    たくさん調べてみたのですが、 いまいち自分と合った内容が見つけられず 質問させていただきます。(*_*) 横浜から田端駅まで行くのに 1横浜から品川(京急線)品川から田端(京浜東北線?) か、 2横浜から品川(京急線)品川から田端(山手線) か、 3横浜から田端まで京浜東北線で行くか 悩んでいます。 横浜を出るのがだいたいAM8時ぐらいです。 時間がかかるか、かからないかというよりは 混雑状況が知りたいです。 よろしくお願いします。

  • 横浜⇒浜松町までの 通勤ルートについて

    横浜から浜松町まで通勤してます。(東海道線利用) 時間帯は平日、朝の8:30過ぎに品川に到着してます。 普段、品川駅から山手線(もしくは京浜東北線)に乗り換えしてますが、 新橋までいって浜松町に戻ったほうが早いのでしょうか? (1)乗車位置や  乗換階段の側がいいのですが車内が混雑との兼ね合  いが・・・ (2)乗換え易さ  品川駅の場合、ホームは山手線がとても混んでて、  車内は京浜東北線の方がが超混んでいる様に思えま  す。 (3)混雑の具合  山手線や、京浜東北線は、品川駅ではとても混んで  いますが東海道線は品川を過ぎるとすごく空きます   などがあるので、自分ですと単純に比較できません。そこで、鉄道に詳しい方ですとどちらを選択されるか、知りたいのですが・・・教えてください。 よろしくお願いします。

  • 回答No.1
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)

終着駅以外の各駅の停車時間は無しなのでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

いつもお世話になっています! BLUEPIXYさん! はい、そのとおりです。 京浜東北線の終着駅以外は停車時間はないです。

関連するQ&A

  • 便利な路線が最寄駅の場所に住んでる人達が羨ましい

    都会の路線が使える最寄駅のところに住んでいる人たちが羨ましい 山手線や京浜東北線の駅が最寄駅のところに住んでいる人たちがとても羨ましいです 電車は昼間ですら山手線は平均3分に一回、京浜東北線は5分6分に一回という本数の多さ 山手線は上野、東京、品川、渋谷、新宿、池袋といった主要駅に止まるかなりの利便性の良い路線 京浜東北線は田端~品川は山手線と丸かぶりの利便性で横浜とかにも止まる 山手線はたしか2017年の住みたい沿線ランキング一位で京浜東北線は3位という人気の高さ ほんと素晴らしい路線です それに対して私の最寄駅は新京成というゴミみたいなというかゴミで使えない路線の超絶ど田舎のところに住んでいます 電車は昼間は10分に一回しか来ません 帰宅ラッシュの時間帯ですら約10分に一回しか来ません 東京方面に行くには必ず乗り換えが必要です ほんと山手線や京浜東北線が最寄駅のところに住んでいる人は羨ましいですね その本人たちはそれが当たり前だから特に疑問に思わないんでしょうが私はゴミ路線なのでとても羨ましいです 私が今住んでる場所を選んだわけではないです 親がここに住むことを選びました ほんとセンスなすぎですよね.....最寄駅が新京成しか使えないとか......不便すぎて話になりません 親を恨むばかりですよ それに対して山手線や京浜東北線が最寄駅のところに住むことを選んだ人たちはセンスがかなり良いですね 私の親とは大違いです ほんと山手線や京浜東北線が最寄駅のところに住んでる人たちがとても羨ましくて辛いです 去年の10月くらいから京浜東北線が最寄駅のところに引っ越ししたいと思うようになりました、山手線の駅は全て地価家賃が高いので現実的じゃないので選択から外してます 「なんで私はこんなクソみたいな場所に住んでいるのだろう」といったことを前から考えていてつい最近もこのようなことを思うようになっています しばしば京浜東北線のことばかり考えてます 京浜東北線が好きすぎて大宮~横浜までの駅を何も見ずに順番通り言えるようになったくらい好きになってしまいました 新京成の駅は興味ないので覚えてませんし覚える気にすらならないです ほんと京浜東北線のところ住みたい、けどクソみたいな場所に住んでいるという現実がとても辛いです まともな考えがあれば普通もっと便利な路線が最寄駅のところに住みますよね 私の親はアホでしかないですね選択ミスです 人生は親でほぼ決まるとかその通りですね 京浜東北線や山手線が最寄駅のところに住むことを選んだ親に生まれた人たちはとても便利な交通利便性を手に入れた状態で生活して、新京成しか使えない最寄駅のところに住むことを選んだ親元に生まれた人たちはクッッッソ不便な生活を強いられる人生です

  • 池袋から東海道新幹線(東京or品川)に乗るのための最短ルートを教えて下さい。

     深夜バスは満席のことが多く、お財布には厳しいですが 新幹線に乗って帰省することが多いのが現状で、 池袋から品川、もしくは東京駅を利用しています。  ルートとしては、 1.池袋~(埼京線)~大崎~(山手線)~品川 2.池袋~(山手線)~田端~(京浜東北線)~東京 3.池袋~(丸ノ内線)~東京  と3つのルートが考えられますが、どのルートが1番早く大阪に 辿り着けるのでしょうか?  最初は新幹線の乗車時間の差や東京駅での在来線→新幹線の 乗換が遠いことも考慮して、1のルートで行ってましたが、 まず池袋駅で埼京線に乗るまでが遠く、大崎で乗換するときも 乗換時間にロスが出ることが多く、あまり効率的でない気が しました。(品川も在来線から新幹線への乗換がけっこー遠い)  帰りなんて最悪で、大崎から埼京線に乗り換えるより恵比寿まで 山手線で我慢して埼京線に乗り換えた方がまだ早い気がします。  その点、2のルートは田端でダッシュすれば山手線から 京浜東北線への乗換えもスムーズで早い気がしますが、 如何せん帰りは京浜東北線の普通とかに当たっちゃうと 山手線で帰るのと全く変わらないのでとっても遅いです。  3のルートが最短な気がして試してみましたが、 丸ノ内線の東京駅は、「東京」といってもほとんど大手町で、 新幹線の乗継まですごく歩くので、これまたあまり良い選択 ではない気がします。  とどのつまり、どれもあまり変わらない時間がかかり、 乗換の距離が少ない分、荷物が重いことを考慮すれば 2のルートが最適なのでしょうか?  名案、お待ち申し上げます。

  • 11/10(土) 日暮里でのスカイライナー乗り換え

    似たようなご質問されている方が少なくないようですが、みなさんそれぞれ条件が違うと思うので、新たに質問させていただきます。 11/10(土)に成田空港へ行きます。 大宮から京浜東北線、田端で山手線に乗り換えて(京浜東北の快速が日暮里で停車しないので)日暮里でスカイライナーに乗ります。 友人との相談の末に日暮里・山手線12:32着、スカイライナー12:45発に乗ることになりました。 そこで教えていただきたいのですが・・・・ (1)京浜東北線のどの辺りの車両に乗れば、日暮里での乗換えがスムーズになりますか? (2)乗り換え時間が13分では厳しいでしょうか? (3)その他、アドバイスありましたらお願いしますm(_ _)m

  • 京浜東北線・山手線の一部は東海道線に入るのですか?

    検索していたら >京浜東北線の東京横浜間は厳密には東海道線の一部です。 >(山手線も東京品川間は東海道線の一部) と言う回答を見つけました。本当? これって、京浜東北線に上り下りと言う表記がないのと関係していますか?

  • JR(東日本)の運転見合わせの判断

    純粋な興味からの質問です。しかもかなりトリビアですみません(笑) 昨日(8/14)の午後、JRで秋葉原から品川にいかなければならなかったのですが、山手線が事故かなんかで運行を見合わせていました。それで京浜東北に乗ったのですが、京浜東北が田町駅に到着した時に、今度は浜松町(田町のひとつ前ですでに通過ずみ)で人身事故があったとの事で、運転見合わせとなり、田町駅で足止めになりました。山手線もまだ止まっていたので、急ぎであれば京急に乗り換えて三田から品川に行く手はあったものの時間もあったので京浜東北の車内で待ちました。やがてアナウンスがあり、山手線が動き出したことと、京浜東北が品川で折り返し運転を開始したので、山手線で品川まで行きそこで再び京浜東北に乗り換えろとのこと。それで私は品川まで行き駅を出ました。 さて、質問ですが、 1. なぜ人身事故が発生した浜松町を通過済みの田町で京浜東北は運転見合わせの判断がされたと思いますか? 2. 首都圏のJRは路線が複雑に絡み合っているので、どこかで事故が起こると影響は他の路線にも波及すると思います。事故があった時にどの路線のどの列車の運行を見合わせたり時間調整したりと言うのはどうやって瞬時に判断するのでしょうか?事故は偶発的で今回の様に複数同時におこることも珍しくなく、マニュアル化は難しいと思うのですが。

  • 京浜東北線の理想的な快速停車駅を教えてください。

    都心の方は使う機会も多いと思いますが、 これまでに浜松町、神田、土休日は御徒町も停車するようになりました。 この停車駅とは関係なく、山手線と重複する田端~品川間で自由に(それこそ他社線の都合関係なく)停車駅を決められるとしたら、どの様にしてほしいですか。 また、山手線と京浜東北線はどちらが好きですか。 私にとっては、「きのこの山」か「たけのこの里」のように永遠のテーマな気がしますが(つまり他の人にとってどうでもいい)一言添えてくださると助かります。 詳しい方は京浜東北線の車両の加速度についてこのままでいいかお答えいただければと。 参考:http://toyokeizai.net/articles/-/107141?page=2

  • 川口から原宿や渋谷へ行く時

    川口から原宿や渋谷へ行くことがたまにあるのですが、一番乗り換えが楽な方法は何になるのでしょうか? 普段その辺りに行くときは、川口から田端まで京浜東北線で行き、田端から山手線内回りに乗り換えています。 でも、先日たまたま原宿に行こうとしていて、田端で乗り換えだとある意味帰る方向に向かう電車に乗り換えなければならなくなるんだから、それなら品川の辺りまで京浜東北線で行って山手線に乗り換えた方がいいのではないかと思いました。(田端だと階段を昇り降りして隣のホームへ行かなければなりませんが、品川などで乗り換えたらそれがないのではないかと思ったんです) 今とても疲れやすい体なので、目的地に行く前に電車の乗り降りで体力を消耗したくないのですが、そういう意味で一番楽であまり時間がかからない乗り換えが何になるのかご存知の方、ぜひ教えてください。

  • 睡眠障害を見てくれ、平日夜に開院している、JR京浜東北or山手線(都内、埼玉県南)の病院

    平日の18:30頃までやっている、睡眠症状を見てくれる病院(精神科など)が、JR京浜東北線 品川~赤羽(JR山手線 品川~田端)でありましたらお教えください。 朝早く起きているにもかかわらず、夜なかなか寝付けず、また深夜に目覚めてしまうこともあり、困っています。 (アラサー世代・会社員です)

  • 山手線と京浜東北線の速度

    田端~田町間は山手線と京浜東北線が並行して走りますが、山手線のほうが早く目的の駅に着くのはどうしてですか? 朝なんかは、上野でほぼ同時に発車しても、田町に着くまでの間に、京浜東北線が1つ後ろの山手線に追いつかれるか抜かれてしまいます はじめは、出勤で外回りに乗るので、外側を走る京浜東北線(田町方面)が不利かなって思ってましたが、京浜東北線が内側を走る内回りでも山手線のほうが早いですよね? 後で気づいたのですが、発車、停車の速度が京浜東北線はゆるやかなのに対して、山手線は比較的急発進急停車です ドアの開閉も、山手線はサッサと閉めてしまいますが、京浜東北線はやや余裕を持って待ち時間が長い感じがします どうしてこのような違いが見られるのでしょうか 同じJRで同じ区間なので、走行方法も同じように教育されるんじゃないかなって思うんですが… ここでは電車の快速運転や遅延等は考えません

  • 朝の山手線・京浜東北線の混雑度

    平日の6時~7時の山手線・京浜東北線の日暮里-東京間の混雑具合はどれくらいでしょうか? また、同時間帯の中央線下り、東京-新宿間はどうでしょうか? 明日の朝、初めて利用しますがラッシュ時と重なってるのでどのくらいの混雑か知っておきたいと思います。 よろしくお願いします。