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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

配列

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

Q&A

解決済

2回答

1433閲覧

配列 演算 最大値 

pro

総合スコア28

Java

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

配列

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

0グッド

0クリップ

投稿2017/01/31 12:25

###前提・実現したいこと
配列同士の演算をし、最大値を取るときの配列番号を取り出す。

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

配列番号の取り出し方(sumが最大のときのtの値)がわからない。

###該当のソースコード

int[] a = new int[] {1,4,2,3,4,5}; int[] b = new int[] {2,1,5,6,7,0}; ArrayList<Integer> sum = new ArrayList<Integer>(); for(int t=0;t<a.length-1;t++){ sum.add((a[t]-b[t]); sum.get(t); } Collections.sort(sum); textView.setText(String.valueOf(sum.get(0)));

###試したこ###試したこと
演算結果をソートした

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

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

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

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

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

guest

回答2

0

java8であればこんな感じですかね

java

1 int[] a = new int[] { 1, 4, 2, 3, 4, 5 }; 2 int[] b = new int[] { 2, 1, 5, 6, 7, 0 }; 3 4 int maxIndex = IntStream.range(0, a.length).mapToObj(index -> index) 5 .sorted((index1, index2) -> (a[index2] + b[index2]) - (a[index1] + b[index1])) 6 .findFirst().get(); 7 8 System.out.println(maxIndex);

~java7でしたらこんな感じですかね

java

1 2 int[] a = new int[] { 1, 4, 2, 3, 4, 5 }; 3 int[] b = new int[] { 2, 1, 5, 6, 7, 0 }; 4 5 int maxIndex = 0; 6 int maxNum = 0; 7 8 for (int i = 0; i < a.length; i++) { 9 10 if (maxNum < a[i] + b[i]) { 11 maxNum = a[i] + b[i]; 12 maxIndex = i + 1; 13 } 14 15 } 16 17 System.out.println(maxIndex); 18 19 }

投稿2017/01/31 12:51

編集2017/01/31 13:09
7tsuno

総合スコア310

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

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

pro

2017/01/31 13:03

回答ありがとうございます。 うまくいきませんでした、、
7tsuno

2017/01/31 13:09 編集

違うパターンも追記しておきました。
swordone

2017/01/31 13:12 編集

失礼、勘違いでした。
pro

2017/01/31 13:16

御丁寧にありがとうございます。もう一人の方の方法でかいけつしましたのでそちらの方をベストアンサーにさせていただきます。
swordone

2017/01/31 13:33

mapToObj(index -> index)は boxed()とも書けます。
guest

0

ベストアンサー

java

1 ArrayList<Integer> sum = new ArrayList<Integer>(); 2 int ind = 0; 3 int max = -100; 4 for (int t = 0; t < a.length; t++) { 5 6 sum.add((a[t] - b[t])); 7 if (max < (a[t] - b[t])) { 8 max = a[t] - b[t]; 9 ind = t; 10 } 11 sum.get(t); 12 } 13 14 System.out.println(ind);

投稿2017/01/31 12:40

編集2017/01/31 13:09
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

pro

2017/01/31 13:00

回答ありがとうございます。 自分が用意した配列だと答えは5なのですが、この例だと1になってしまいます、、
退会済みユーザー

退会済みユーザー

2017/01/31 13:08

for (int t = 0; t < a.length-1; t++) {ではなくて for (int t = 0; t < a.length; t++) {に訂正しました これで5になると思います int ind とint maxの初期値も逆でした
pro

2017/01/31 13:17

解決しました。ありがとうございました。
pro

2017/01/31 14:36

解決後にすみません。 int ind =-100が果たす役割を教えていただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問