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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

1918閲覧

Java:ArrayListの要素の取り出し方について

k_m

総合スコア11

Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2018/09/13 05:21

研修でECサイトをjsp spring bootを使って作成しています
自由に作成してくださいと言われており少しずつ調べながらやっていて、
sessionを使ってCartListに購入する商品のID,購入個数などの情報を入れて
カートの画面でListを0番からループ出力することでショッピングカートができたところまではよかったのですが、(CartListはArrayList<object>で作成しています)

今現在、Listの中身は
CartList[0]
|---code(商品のID)

|---price(商品の価格)

|---count(購入する個数)

|--etc....

CartList[1]
|---code(商品のID)

|---price(商品の価格)

|---count(購入する個数)

|--etc....

みたいな感じになっていて、
購入処理(codeで該当するの商品検索してupdateでcount分在庫を減らす)をする上で、
listからcode,countだけを取り出す必要があり、取り出し方がわからなくて困っています

どのように記述したら取り出すことが出来るのでしょうか

最終的に

for(int i = 0 ; i < CartList.size() ; i++) {
int cnt = Integer.parseInt(CartList.get(i));//countを入れたい
String str = CartList.get(i).toString();//codeを入れたい
itemMapper.purchaseCount(cnt,str);//引数にcount(int),code(String)を使用した購入処理
}
という感じにしたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

CartListはArrayList<object>で作成しています

とありますが、このobjectをCardクラスという自作クラスだと解釈して回答します。
[追記]CartListはPurchaseFormとのことなので、回答も合わせておきます。

リストの各要素を取り出すには以下の段階を踏む必要があります。

  1. リスト(CartList)から要素(PurchaseForm)を取得する
  2. 取り出した要素(PurchaseForm)から指定した値(code, priceなど)を取得する

実際にどのようなクラスを書いているのかわからないので、上記の手順を
ざっくりとコードに表すと以下のように書けます。

java

1PurchaseForm purchaseForm = CartList.get(0); // リストから0番目の要素を取得 2Xxx variable = purchaseForm.yyy; // 0番目の要素のyyyという変数の値を取得

[追記]
purchaseForm.yyyはメソッドの場合はpurchaseForm.yyy()のような書き方になります。
同一パッケージの場合は直接変数を指定しても問題ないですが、
getYYYメソッドがあるならそちらで行ったほうが良いかと思います。

投稿2018/09/13 05:35

編集2018/09/13 06:23
dice142

総合スコア5158

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

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

fuzzball

2018/09/13 06:13

ただの茶々ですが、カートの中身は商品(Item)かと思います。
k_m

2018/09/13 06:15

解答ありがとうございます List<PurchaseForm> CartList = new ArrayList<PurchaseForm>();という風に作成しました PurchaseFormの中身は public class PurchaseForm { int count; String details; String name; int price; public int getCount() { return count; } public void setCount(int count) { this.count = count; } public String getDetails() { return details; } public void setDetails(String details) { this.details = details; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } という感じになります detailsが商品のcodeになります この場合だと、 PurchaseForm cart = CartList.get(0) int count = cart.count; というような記述でいいのでしょうか
dice142

2018/09/13 06:25

> kai_m様 回答に追記しましたが、getメソッドがあるならそちらで取得すべきかと思います。 私が示したのは例として0番目を挙げただけなのでなので、 全てのCartListの要素の場合はループで行うべきだということをお忘れなきよう。
k_m

2018/09/13 06:25

いろいろ試した結果 下記のようにすることで購入処理が完成しました for(int i = 0 ; i < CartList.size() ; i++) { PurchaseForm cart = CartList.get(0); int count = cart.getCount(); String details = cart.getDetails(); itemMapper.purchaseCount(count,details); } ご回答、追記ありがとうございました 大変勉強になりました またわからないことがあれば質問しようと思います その時はまたよろしくお願いいたします
dice142

2018/09/13 06:32

> fuzzball様 たしかにそうですね。 しかもCartと書いたつもりがCardにしてる誤字。。。 > kai_m様 解決されたようでなによりです。 一歩ずつ頑張ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問