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

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

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

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

Q&A

解決済

1回答

2084閲覧

配列から重複した数字を抽出したい 

sio.naga7

総合スコア10

Java

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

1グッド

0クリップ

投稿2022/06/11 08:24

編集2022/06/16 12:12

ユーザーが入力した任意の数から重複した数字を抽出したいのですが、途中まで書いて、完全に分からなくなってしまいました。

流れとしては、メインメソッドから重複確認のメソッドを呼び出し、ArrayList.contains(), ArrayList.subList() の使用( HashSet や distinct などは使用不可)、メインメソッドで重複した数字の表示です。

アドバイス頂けますと幸いです。

package zyuhuku;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.List;

import java.util.ArrayList;
import java.util.Scanner;

public class Otameshi {

public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); //変数の宣言 boolean valid = false; boolean playing = false; ArrayList<Integer> list = new ArrayList<Integer>(); int num1 = 0; //任意の数字を尋ねる do { do { System.out.println("数字を入力してください。エンターキーを押すと終了します:"); String enter = in.nextLine(); try { num1 = Integer.parseInt(enter); list.add(num1); }catch(Exception e) { System.out.println("無効です。整数を入力してください"); }finally { if (enter.equals("")) { valid = true; } } }while(!valid); System.out.println("Index"+ "\t" +"Item"); for (int i = 0; i < list.size(); i ++) { System.out.println(i + "\t" + list.get(i)); } System.out.println("リストの中の数は " + list.size() + " です。"); System.out.println("リストの中の数の合計 " + sumValues(list) + " です。"); }while(playing); }//main終了 public static int sumValues(ArrayList<Integer> list) { int sum = 0; for (int i = 0; i < list.size(); i++) { sum = sum + list.get(i); } return sum; }//sumValues終了

}

kazuma-s👍を押しています

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

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

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

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

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

dodox86

2022/06/12 01:18

マークダウンでのコード提示が崩れています。 ```Java // コード全体 ``` のように記載しましょう。あと、sumValuesメソッドって不要ですね。流用でしょうか。 いずれにせよ、コードを何となく書き進める前に頭の中で考えをまとめる必要があります。 リストでも配列でも要素をひとつずつ頭から見て、前後に同じ値があればそれは重複した値であり、それをまとめていけばよいです。
ho-ta-te

2022/06/14 12:48

>ArrayList.subList() の使用( HashSet や distinct などは使用不可) こちらは課題で提示された実装の条件でしょうか?ArrayList.subList() でどうしたいのかがよくわからず、期待している結果を記載してほしいです。 例えば『1,2,3,1,2』が入力されたとき、ArrayList.subList()で作られるリストはどのような状態で、どう表示したいのでしょうか?
guest

回答1

0

自己解決

課題で出されたものです。初めて質問するので、どういうふうに質問していいか分からずご迷惑をおかけしました。

Java

1 2private static ArrayList<Integer> dups(ArrayList<Integer> list) { 3 4 ArrayList<Integer> duplicates = new ArrayList<>(); 5 6 for(int i = 0; i < list.size(); i++) 7 { 8 List<Integer> restOfList = list.subList(i + 1, list.size()); 9 if(restOfList.contains(list.get(i))) 10 { 11 if(!duplicates.contains(list.get(i))) 12 { 13 duplicates.add(list.get(i)); 14 } 15 } 16 } 17 return duplicates; 18 }

投稿2022/06/16 03:12

sio.naga7

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問