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

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

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

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

1回答

1843閲覧

重複している文字列のカウントについて

fruitpunch

総合スコア6

Java

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

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

1クリップ

投稿2021/05/13 11:31

JAVAで2つのarrayListから重複しているstringをカウントしてアウトプットしたいですが、やり方が全く見当つかなくてどなたかアドバイスをいただけますでしょうか

//たとえば public class Main { public static void main(String[] args) { Iphone[] arrayList1 = { new Iphone("white", 4), new Iphone("red", 9), new Iphone("purple", 3), new Iphone("orange", 15), new Iphone("black", 4), }; Iphone[] arrayList2 = { new Iphone("pink", 3), new Iphone("red", 10), new Iphone("white", 8), new Iphone("blue", 1), new Iphone("bindle", 10), }; countOverlapIphone(arrayList1, arrayList2); }

arrayList1とarrayList2で同じ色のIphoneが何個重複しているのかをカウントしたいです
アウトプットの例としては
”2つのリストには2つのIphoneの色が重複しています”
という感じです。

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

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

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

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

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

m.ts10806

2021/05/13 11:35

似たような件は過去質問含めて探せば出てくるように思うのですけど、何かしら調べたり試したりされたのでしょうか。
m.ts10806

2021/05/13 11:35

countOverlapIphoneというメソッドがありますが、自身で何かしら書かれたのでは?
fruitpunch

2021/05/13 11:44

返信ありがとうございます。 自分で色々試してなかなか正解にたどりつけられなかったのですが。。。 自分の考えとしては int count = 0; for (int e : arrayList1) { if (arrayList2.contains(e)) { count ++ ; } で重複しているものをカウントしようとしたんですけど、これだと数字まで含まれるので成功できなかったです
dodox86

2021/05/13 13:10 編集

arrayList1の要素のオブジェクトはint型ではなくIphoneクラスなのでしょうから、「for (int e : arrayList1) {」ではコンパイルエラーのはずです。が、contains()ではなく、同じ要素があるかをチェックして、双方のリストの要素合計数から引くなりすれば、重複があるかどうか分かるはずです。 先にコメントいただいているようにteratailトップから「Java 文字列 重複」で過去質問を検索するだけでも、同様に参考になる情報が得られると思います。
guest

回答1

0

質問には Iphoneクラスの定義がないので数字の意味がよく分かりません。
適当に書いてみましたが、これでいいのでしょうか?

Java

1class Main { 2 public static void main(String[] args) { 3 Iphone[] arrayList1 = { 4 new Iphone("white", 4), 5 new Iphone("red", 9), 6 new Iphone("purple", 3), 7 new Iphone("orange", 15), 8 new Iphone("black", 4), 9 }; 10 11 Iphone[] arrayList2 = { 12 new Iphone("pink", 3), 13 new Iphone("red", 10), 14 new Iphone("white", 8), 15 new Iphone("blue", 1), 16 new Iphone("bindle", 10), 17 }; 18 System.out.println("2つのリストには " 19 + countOverlapIphone(arrayList1, arrayList2) 20 + "個のIphoneの色が重複しています"); 21 } 22 23 static int countOverlapIphone(Iphone[] a1, Iphone[] a2) { 24 int count = 0; 25 for (Iphone e1 : a1) 26 for (Iphone e2 : a2) 27 if (e1.name.equals(e2.name)) { count++; break; } 28 return count; 29 } 30} 31 32class Iphone { 33 String name; 34 int num; 35 36 Iphone(String name, int num) { 37 this.name = name; 38 this.num = num; 39 } 40}

このコードは理解できますか?

投稿2021/05/14 15:36

kazuma-s

総合スコア8224

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問