2016-04-19 5 views
0

現在、このプログラムの出力は、私が期待したものですが、出力はもっとこのようなことするために私の意図があるこれにスレッドを使用する必要がありますか?

Hi Hola Ciao Bonjour Guten tag How do you say hi in English? How do you say hi in Spanish? How do you say hi in Italian? How do you say hi in French? How do you say hi in German?

です:

How do you say hi in English? Hi How do you say hi in Spanish? Hola How do you say hi in Italian? Ciao How do you say hi in French? Bonjour How do you say hi in German? Guten tag

私の予測がありますこれを行うには2つのスレッドを作っていなければなりませんか?私はスレッドの使い方を知りませんが、スレッドを自分がしたいことをする方法を理解するために次に調べなければならないことを確認したいだけです。これは単なる例であり、私の実際のコードはもう少し複雑で、この例は私の意図を理解するためのより簡単な方法です。

オクラホマので、ここに私のコードです:

package test; 
 

 
public class Class { 
 

 
    public static void main(String[] args) { 
 
    sayHiLanguages(); 
 
    howToSayHi(); 
 
    } 
 

 
    public static void sayHiLanguages() { 
 
    sleepThread(1); 
 
    System.out.println("Hi"); 
 
    sleepThread(1); 
 
    System.out.println("Hola"); 
 
    sleepThread(1); 
 
    System.out.println("Ciao"); 
 
    sleepThread(1); 
 
    System.out.println("Bonjour"); 
 
    sleepThread(1); 
 
    System.out.println("Guten tag"); 
 
    } 
 

 
    public static void howToSayHi() { 
 
    System.out.println("How do you say hi in English?"); 
 
    sleepThread(1); 
 
    System.out.println("How do you say hi in Spanish?"); 
 
    sleepThread(1); 
 
    System.out.println("How do you say hi in Italian?"); 
 
    sleepThread(1); 
 
    System.out.println("How do you say hi in French?"); 
 
    sleepThread(1); 
 
    System.out.println("How do you say hi in German?"); 
 
    } 
 

 
    public static void sleepThread(long time) { 
 
    try { 
 
     Thread.sleep(time * 1000); 
 
    } catch (InterruptedException e) { 
 
     e.printStackTrace(); 
 
    } 
 
    } 
 
}

君たちは素晴らしいことだスレッドに関する良い記事に私を指示することができれば!

+1

これは、マルチスレッドを要求状況ではありません。 Kathy SierraとBert BatesのSCJPブックのマルチスレッドに関するセクションを参照してください。 – user3516726

+1

あなたが欲しいものの流れを考えてみてください。 - 質問 - 回答 - 尋ねる - 回答など。 –

+0

上記のように:「私はスレッドの使い方はわかりませんが、スレッドが私のものであることを確認したい私がしたいことをする方法を理解するために次に研究しなければならない...これは単なる例であり、私の実際のコードはもう少し複雑で、この例は私の意図を理解するより簡単な方法だと感じています。 – Kaelinator

答えて

1

生活をシンプルに生きる -

package test; 

public class Class { 

    public static void main(String[] args) { 
     sayHiAsLanguages(); 
    } 

    public static void sayHiAsLanguages() { 
     new Thread(new Runnable(){ 
      public void run(){ 
       try{ 
        //Change Thread sleep amount to see delay difference 
        System.out.println("How do you say hi in English?"); 
        Thread.sleep(500); 
        System.out.println("Hi"); 

        Thread.sleep(1000); 
        System.out.println("How do you say hi in Spanish?"); 
        Thread.sleep(500); 
        System.out.println("Hola"); 

        Thread.sleep(1000); 
        System.out.println("How do you say hi in Italian?"); 
        Thread.sleep(500); 
        System.out.println("Ciao"); 

        Thread.sleep(1000); 
        System.out.println("How do you say hi in French?"); 
        Thread.sleep(500); 
        System.out.println("Bonjour"); 

        Thread.sleep(1000); 
        System.out.println("How do you say hi in German?"); 
        Thread.sleep(500); 
        System.out.println("Guten tag"); 

       }catch(InterruptedException ie){ 
        ie.printStackTrace(); 
       } 
      } 
     }).start(); 
    } 
} 
0

メソッドを使用する必要がある場合を除いて、2つのリストを使用してそれらを反復することをおすすめします。

List<String> answers = new ArrayList<>(); 
answers.add("Hi"); 
answers.add("Hola"); 
answers.add("Ciao"); 
answers.add("Bonjour"); 
answers.add("Guten tag"); 

List<String> questions = new ArrayList<>(); 
questions.add("How do you say hi in English?"); 
questions.add("How do you say hi in Spanish?"); 
questions.add("How do you say hi in Italian?"); 
questions.add("How do you say hi in French?"); 
questions.add("How do you say hi in German?"); 

for(int i = 0; i < answers.size(); i++) 
{ 
    System.out.println(questions[i]) 
    System.out.println(answers[i]) 
} 

これを使用する場合は、これらのリストにすばやく追加する方法を作成することをおすすめします。

addToLists(String question, String answer) 
{ 
    question.add(question); //question.add("How do you say hi in " + question); would make it even easier 
    answers.add(answer); 
} 
+0

ありがとうございます。しかし、上記のコードはあくまで例です。あなたの答えを自分のコードに適用しないでください。 – Kaelinator

+0

@Kaelinatorあなたのコードではどういうことをしていますか?どこかにアップロードできますか? –

+0

ええ、ここにペーストビンがあります:http://pastebin.com/932X0z7s ArifMustafaの答えを使用した後のコードです。私の問題を解決しました。* 10 – Kaelinator

関連する問題