2017-08-03 10 views
-1

私は本質的に簡単な小さなプログラムでなければならないと思うものを作成するのは初期段階です。しかし、私は非常にJavaに新しいですので、それは予想よりも困難であることが証明されています。これは、最後に印刷部分を除いてコンパイルするものです。まず、なぜ私は理解していないのですか?第2に、ランダムなジェネレータを作成して、arrayList内の配列の1つからアイテムをランダムに選択する必要があります。私はたくさんのことをしようとしていますが、それを働かせることはできません。コードをどこに置くべきかについては混乱していると思います。助けて!ArrayListにある配列からランダムな項目を取得しようとしています

import java.util.*; 

public class RestaurantSelector1 { 

    //public static class Tribeca4star{ 
    final static String[] italian = {"Pepolino Restaurant", "Locanda Verde", "Scalini Fedeli", "Gran Morsi", "Ecco", "Tutto il Giorno", "The Odeon", "Mamo Restaurant", "Petrarca Cucina E Vino", "Osteria Morini"}; 
    final static String[] japanese = {"Shigure", "Sushi Azabu", "Ichimura", "Brushstroke", "Takahachi Tribeca Restaurant", "Ninja New York", "DOMODOMO", "Sushi of Gari", "Hirohisa", "Blue Ribbon"}; 
    final static String[] french = {"Bouley", "Batard", "Racines", "The Odeon", "MAMO Restaurant", "La Sirene", "Le Coucou", "Balthazar", "Taureau", "L'Appart"}; 
    final static String[] american = {"American Cut Steakhouse", "Marc Forgione", "The Bennett", "Little Park", "The Odeon", "Yves", "Tribeca Grill", "Atera", "Batard", "Brandy Library"}; 
    final static String[] chinese = {"Mr. Chow", "Macao", "Khe-Yo"}; 
    final static String[] spanish = {"Tablao", "Sazon", "Despana", "Estancia 460", "Westside Coffee Shop", "Anejo Tribeca", "Terra Wine Bar", "Darlene", "Sophia's Cuban Cuisine", "Amada"}; 
    final static String[] cafe = { "Arcade Bakery", "Galerie de Cafe", "The Wooly Daily", "Cafe Belle", "Baked", "Laughing Man Coffee and Tea","La Colombe Coffee", "Kuro-Obi at Canal Street Market", "Blue Spoon Coffee", "Everyman Espresso"}; 
    final static String[] thai = {"khe-yo", "Empire", "Macao"}; 
    final static String[] indian = {"Tamarind"}; 
    final static String[] viatnamese = {"Khe-Yo", "Macao"}; 

    public static void main(String[] args){ 
     ArrayList<String[]> cuisine = new ArrayList<>(); 

     cuisine.add(italian); 
     cuisine.add(japanese); 
     cuisine.add(french); 
     cuisine.add(american); 
     cuisine.add(chinese); 
     cuisine.add(spanish); 
     cuisine.add(cafe); 
     cuisine.add(thai); 
     cuisine.add(indian); 
     cuisine.add(viatnamese); 

     System.out.println(cuisine[0,1]); 
    } 
} 
+3

「ランダムにアイテムを選ぶ」という質問から構文エラーの問題を分離してください。 – Arkadiy

答えて

0

は、あなたが作成することにより、ランダムなインデックスを生成することができますあなたのString[]オブジェクトを取得するためにArrayList.get(int index)を使用したい、そして、あなたはその配列

+0

こんにちは!どのように私はイタリア語からランダムなレストランを得るだろうか?最後の行を除いてすべてがコンパイルされていますが、特定のタイプの料理をどのようにして、その中のランダムなレストランを取得するのか分かりません。 –

+0

答えを出すだけでなく、あなたが学ばなくても、あなたはそれについて考えることができます。 あなたがしたいことは、それを複数のステップと考えることです。 ランダムな整数が必要です。 イタリア料理のString []が 、あなたのArrayListの中にイタリア料理のString []が必要です。 ArrayListからString []を取得し、そのString []からランダムなインデックスを取得します。 すべてが1行に収まらない場合は、より簡単かもしれません。各変数を割り当て、そのように動作します。あなたがもっと助けを必要とするならメッセージバック – BaneDad

1

内の文字列を指すことができSystem.out.println(cuisine.get(0)[1])

を試してみてください新しいランダム()インスタンスと無作為intをnextIntから得るには、ランダム言語の場合は[0,cuisine.size())、その言語の場合は[0,cuisine.get(rnd).length)

Random rand = new Random();       //RN Generator 
int rnd  = rand.nextInt(cuisine.size());   //random lang index 
int rndWord = rand.nextInt(cuisine.get(rnd).length) //random word index 

.get(rnd)のランダムインデックスを使用して、必要なString []にアクセスし、[rndWord]でその配列のランダムエントリを取得できます。

System.out.print(cuisine.get(rnd)[rndWord]);  //print out random word 
+0

しかし、料理は右サイズですか?私がそれをすると、サイズは公開されていないと言いますか? –

+0

あなたはすべてのセット –

+0

を.size .size()をやっていないことを確認してください '(randomArray.lengthは - 1) - 0)+ 1 'の目的は何でありますこの? –

0

ランダム料理からランダムなレストランを取得するには、次の操作を行うことができます

final Random random = new Random(); 
final String[] randomCuisine = cuisine.get(random.nextInt(cuisine.size())); 
final String randomRestaurant = randomCuisine[random.nextInt(randomCuisine.length)]; 
0

私が正しくあなたを理解していれば、あなたのリストのランダムString[]を取得して、取得したいですString[]のランダムなエントリ。あなたはjava.util.Randomクラスを使用していることを得ることができます:

public static String getRandom(List<String[]> list) { 
    Random random = new Random(); 
    int listAccess = random.nextInt(list.size()); 
    String[] s = list.get(listAccess); 
    return s[random.nextInt(s.length)]; 
} 

次に、あなたのコードは、あなたが使用する必要があるため、これは、コンパイルされない理由を、単にあなたの質問のために

System.out.println(getRandom(cuisine)); 

System.out.println(cuisine[0,1]);を交換.get(<index>)Listの場合は[<index>]、配列から項目にアクセスする場合は、

0

まず、インポート文は書かれたとおりにコンパイルされません。

import java.util.; //will not compile without class name after '.' import java.util.*; //will compile: You could also specify a specific class name in place of the *

ランダムなレストランを生成するとして、あなたはあなたのmainメソッドに次のコードを追加することでこれを行うことができます。説明のためにコメントを追加しました。

public static void main(String[] args) { 
    ArrayList<String[]> cuisine = new ArrayList<>(); 

    cuisine.add(italian); 
    cuisine.add(japanese); 
    cuisine.add(french); 
    cuisine.add(american); 
    cuisine.add(chinese); 
    cuisine.add(spanish); 
    cuisine.add(cafe); 
    cuisine.add(thai); 
    cuisine.add(indian); 
    cuisine.add(viatnamese); 

    Random randomArrayListIndex = new Random(); 

    int randomCuisine = randomArrayListIndex 
      .nextInt(cuisine.size()); 

    String[] randomArray = cuisine.get(randomCuisine); // get random array 
                 // from ArrayList 

    Random randomArrayIndex = new Random(); 

    String randomRestaurant = randomArray[randomArrayIndex // get random element 
                 // from array 
      .nextInt(randomArray.length)]; 
    System.out.println(randomRestaurant); 
} 
+0

からランダムに単語を得るために、私の編集を参照してください@danaCarlin @danaCarlin –

+0

良いキャッチ。私はそれをあまりにも速く書いて、それを完全には考えていませんでした...私は元々、配列の長さまたはArrayListのサイズから1を引く必要があると考えていました。その数は有効なインデックスではないからです。それはパラメータの非包括的であるように – BNeumann

+0

'randomArrayIndex.nextInt(サイズ)は、' '自動的に)0、サイズ1]又は[0、サイズ'から次のintを取得します。 :) –

0

イタリア語からランダムなレストランを取得するにはどうすればよいですか?最後の行を除いてすべてがコンパイルされていますが、特定のタイプの料理をどのようにして、その中のランダムなレストランを取得するのか分かりません。

ArrayList<String[]> WestVillageCuisine = new ArrayList<String[]>(); 
WestVillageCuisine.add(Expensive.WestVillage.italian); 
WestVillageCuisine.add(Expensive.WestVillage.japanese); 
WestVillageCuisine.add(Expensive.WestVillage.american); 
WestVillageCuisine.add(Expensive.WestVillage.chinese); 
WestVillageCuisine.add(Expensive.WestVillage.spanish); 
WestVillageCuisine.add(Expensive.WestVillage.cafe); 
WestVillageCuisine.add(Expensive.WestVillage.thai); 
WestVillageCuisine.add(Expensive.WestVillage.indian); 
WestVillageCuisine.add(Expensive.WestVillage.viatnamese); 
WestVillageCuisine.add(Expensive.WestVillage.greek); 

System.out.println(getRandom(WestVillageCuisine)); 
System.out.println(WestVillageCuisine.get(0).getrandom()); 

}

関連する問題