質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1735閲覧

Java set?型またはMap?型の2次元?配列の呼び出しをする方法について

Kinsho

総合スコア18

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/07/07 04:38

課題を1日考えながら試行錯誤していましたがどうしてもできないのでアドバイスをお願いします.

JavaでShopクラスとStaffクラスを持っておりこのデータをSQLで呼び出して次のようなテーブルを作っています.
テーブル
ここでどのショップに誰が所属しているかをまとめて出力したいです(例→ショップA:{staff1,2,3},ショップB:{staff4,5},ショップC:{staff6}).

shop_idを指定した場合の呼び出しはこのように

{"shopId":7203,"shopName":"Toyota","staffs": [{"firstName":"Toyota","lastName":"Sakichi","staffId":99689,"shopId":7203}, {"firstName":"Toyota","lastName":"Risaburo","staffId":445,"shopId":7203}, {"firstName":"toyota","lastName":"Shoichiro","staffId":556,"shopId":7203}]} ```できるのできています.作成したテーブルのshop_idが違ったら別の集団に入れるならsetかなと思いましたがうまい実装ができません.今後Shopの追加や削除があっても問題なく動くようにしたいため,shop_idをリスト化してあらかじめ手入力する方法はなしでお願いします. 自分で作っているコードはこんな感じで ```Java package com.example.******************; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.*; public class JDBC4 { public ShopWithStaff getStaffList(){ ShopWithStaff shopWithStaff = new ShopWithStaff(); //Map allShopStaff = new HashMap(); Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager.getConnection("jdbc:postgresql://接続確認済"); stmt = c.createStatement(); String sql = "SELECT shop.shop_id, shop_name, staff_id, first_name, last_name"; sql += " FROM shop JOIN staff "; sql += "ON shop.shop_id=staff.shop_id"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { Staff staff = new Staff(); long shopId =rs.getLong("shop.shop_id"); String shopName = rs.getString("shop_name"); long staffId = rs.getLong("staff_id"); String firstName = rs.getString("first_name"); String lastName = rs.getString("last_name"); shopWithStaff.setShopId(shopId); shopWithStaff.setShopName(shopName); staff.setStaffId(staffId); staff.setShopId(shopId); staff.setFirstName(firstName); staff.setLastName(lastName); // around here some problem //shopWithStaff.addStaff(staff); // allShopStaff.put(shopId,new HashMap()); //allShopStaff.get(shopId).put(staffId,staff); } rs.close(); stmt.close(); c.close(); } catch (Exception e) { System.err.println(e); } return shopWithStaff;

また現在のクラスの中身はこんな感じになっています.

Java

1class Shop { 2 private Long shopId; 3 private String shopName;} 4 class Staff { 5 private Long staff_id; 6 private Long shop_id; 7 private String first_name; 8 private String last_name;} 9 class ShopWithStaff { 10 private Long shopId; 11 private String shopName; 12 private ArrayList<Staff> staffs =new ArrayList<>();}

アドバイスよろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

shop_idのsetを取得するコードを別に追加で書いたら無事に完了しました.

投稿2021/07/07 05:09

Kinsho

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問