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

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

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

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

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

連結リスト

連結リストとは、データ構造のひとつであるリストの中で、要素が前後の要素の情報を持つことで、要素が連結(リンク)しているリストの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

790閲覧

java 戻り値を設定せずに引数のリストを直接操作する

gknjnjtnj

総合スコア7

Java

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

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

連結リスト

連結リストとは、データ構造のひとつであるリストの中で、要素が前後の要素の情報を持つことで、要素が連結(リンク)しているリストの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

1クリップ

投稿2021/06/13 11:03

編集2021/06/13 11:26

前提・実現したいこと

リストの重複している値のみ書き出すプログラムを作っています。
戻り値なしで、引数のリストを直接操作して表示しなければいけません。

発生している問題・エラーメッセージ

どうやって、表示すれば良いかわからない

該当のソースコード

java

1import java.util.List; 2 3public class NonUniqueElements { 4 public void convert(List<Integer> targetList) { 5 6 int count=0; 7 8 for (int i = 0; i < targetList.size(); i++) { 9 for(int j = 0; j < targetList.size(); j++) { 10 if (targetList.get(i) == targetList.get(j)) { 11 count++; 12 } 13 } 14 if(count<2){ 15 targetList.remove(i); 16 } 17 count = 0; 18 } 19 } 20 21 public static void main(String[] args) { 22 NonUniqueElements nu = new NonUniqueElements(); 23 List<Integer> list = List.of(1,2,3,4,3,5); 24 25 nu.convert(list); 26 27 System.out.print("["); 28 for (int n: list) { 29 System.out.print(n + ","); 30 } 31 System.out.print("]"); 32 33 } 34}

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

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

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

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

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

guest

回答1

0

ベストアンサー

戻り値なしで、引数のリストを直接操作して表示しなければいけません。

それなのにnu.convert(List.of(1,2,3,4,3,5));と、List.ofの返り値を直接引数としてしまっているのはなぜなのでしょうか?

この場合でもconvertメソッドからListを変更することは可能ですが、呼んだ側から変更したリストにアクセスする方法がありません

いったん変更可能なListを~~List<Integer> list = List.of(1,2,3,4,3,5);のように~~変数に入れて、nu.convert(list);と渡せば、あとからlist経由で結果にアクセスできます。

投稿2021/06/13 11:12

編集2021/06/13 11:25
maisumakun

総合スコア146018

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

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

gknjnjtnj

2021/06/13 11:19

回答ありががとうございます。 そのように書き換えて実行してみたところエラーが出てしまいました public static void main(String[] args) { NonUniqueElements nu = new NonUniqueElements(); List<Integer> list = List.of(1,2,3,4,3,5); nu.convert(list); System.out.print("["); for (int n: list) { System.out.print(n + ","); } System.out.print("]"); } 他の原因など教えて欲しいです
maisumakun

2021/06/13 11:22

> エラーが出てしまいました どのようなエラーが出たのですか?
maisumakun

2021/06/13 11:26

List.ofの結果であるListは変更不可でした(元のコードがそうなっていたので見落としていました)。変更することを前提としたメソッドに与えるものではありません。
gknjnjtnj

2021/06/13 11:28

どうすれば、戻り値なしで引数のリストのみでこのようなプログラムができますか? もし、何か他の方法などがあれば教えていただきたいです。
maisumakun

2021/06/13 11:34

> どうすれば、戻り値なしで引数のリストのみでこのようなプログラムができますか? 与えるリストをList.of以外の方法で作ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問