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

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

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

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

Android Studio

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

Q&A

解決済

1回答

272閲覧

連続して入力されるデータの処理

place

総合スコア12

Java

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

Android Studio

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

0グッド

0クリップ

投稿2017/10/07 06:17

編集2017/10/07 07:57

配列に入れた100個の整数の合計値を出力するプログラムがあります。
これに1秒ごとに乱数で出力した整数を1つ追加し、一番古い整数は削除するという機能を追加したいのですが、
どのようにすれば実現できますか?
一秒ごとに何かを行う、と言うところまでは実装しましたが、データの移し変え?の方法が分かりません。

環境はandroid studioです。

import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity implements Runnable{

int Date[]=new int[100]; int i; int sum=0 ; Double ans; public static String testtext; private Thread mThread; public static Handler mHandler; private TextView mTextView; public TextView Testtext; public TextView Testtext2; public static long count = 0; int timing=1000; @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for(i=0;i<100;i++){ Date[i]= (int)( (Math.random()*100)); sum+=Date[i]; } ans=(double)(sum/100); mTextView = (TextView)findViewById(R.id.textView); Testtext = (TextView)findViewById(R.id.textView2); Testtext2 = (TextView)findViewById(R.id.textView3); Testtext.setText(Arrays.toString(Date)); Testtext2.setText(String.valueOf(ans)); mHandler = new Handler() { //メッセージ受信 public void handleMessage(android.os.Message message) { //メッセージの表示 String text = (String) message.obj; if(message.what==0) { mTextView.setText(text); } if(message.what==2) { Testtext.setText(text); } //メッセージの種類に応じてswitch文で制御すれば //イベント制御に利用可能 }; }; } @Override public void onResume(){ super.onResume(); mThread = new Thread(this); //スレッド処理を開始 if(mThread != null ){ mThread.start(); } count=0; } @Override public void onPause(){ super.onPause(); //スレッドを削除 mThread = null; } //スレッドによる更新処理 public void run() { long time = System.currentTimeMillis(); while (mThread != null) { long now = System.currentTimeMillis(); if(now - time > timing){ //Message msg = new Message(); //Message msg = Message.obtain(); Message msg = mHandler.obtainMessage(); msg.obj = new String("ループが"+ count + "回終了しました"); //ハンドラへのメッセージ送信 mHandler.sendMessage(msg); //スレッドの利用変数を初期化 time = now; count++; } } }

}

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

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

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

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

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

scsi

2017/10/07 06:25

プログラム言語と今あるコードとあなたが試したことを書いてください
guest

回答1

0

ベストアンサー

配列ではなくLinkedListを使って再実装し、LinkedList#pushとLinkedList#popをつかうと良いですね。

また、コードはコード用の記述に修正してください。

投稿2017/10/07 08:07

yona

総合スコア18155

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問