JAVA関連のことを調べてみた2021年10月18日

JAVA関連のことを調べてみた2021年10月18日

@IntDefについて

## 経緯
私はEnumクラスが大好きなのですが、この前初めてIntDefを触りました。
独自アノテーションに対して付与する・・・?
便利そうなので調べてみました。

## IntDef(StringDef)とは
端的に言うと、**Enumより軽く、型安全に使用できるものといったもの**とのことです。

Enumを使用した場合、1つのEunmにつき1.0~1.4 KB ほど増えることがあるそうです。
サイズの増加は可能な限り避けたいので、かなり有用な方法に思えます。([参考](https://developer.android.com/topic/performance/reduce-apk-size#remove-enums))

## 使ってみる
とりあえずEnumのサンプルを。細かい部分は目を瞑ってください。

“` Sample.java
public enum DayOfTheWeek {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURS

元記事を表示

[100%] FibFrog (codility Lesson 13)

_Lesson13_
## [Fibonacci numbers](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/)

***
[Open reading material (PDF)](https://codility.com/media/train/11-Fibonacci.pdf)

> _Medium_
> ### [FibFrog](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/fib_frog/)
> Count the minimum number of jumps required for a frog to get to the other side of a river.

#### Task description
***
The Fibonacci sequence is defined using the following recursive formula:

F(0) = 0

元記事を表示

条件分岐で学んだこと10/18

“`js
public class Main {
public static void main(String[] args) {
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは”);
if (isHungry== 0) {
System.out.println(“お腹がいっぱいです”);
} else {
System.out.println(“はらぺこです”);
}
if (isHungry == 1) {
System.out.println(food + “をいただきます”);
}
System.out.println(“ごちそうさまでした”);
}
}
“`

三項演算子でシンプルに描く

“`js
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは

元記事を表示

java 学習 メモ

##乱数の生成 Math.random();
“`java
public class Lesson036{
public static void main(String args[]){
//randomメソッドは実数を生成するのでdouble型の変数を宣言
double d;
//randomメソッドで生成した実数を変数dに代入
d = Math.random();
//出力
System.out.println(d);
}
}
“`
##整数を生成する場合 (int)(Math.random()*10)
“`java
public class Lesson037{
public static void main(String args[]){
//int型変数iを宣言
int i;
//randomメソッドで0以上10未満の整数を生成
i = (int)(Math.random()*10);

元記事を表示

アルゴリズム:Java 三角形が作れるかどうかの判定。

#三角形が作れるかどうかの判定。
n本の辺をがある。そこから3本選んで最も周の長さが長い三角形の時のその長さを求める。
なお、三角形が作れないときは0を出力。
例 入力 n=5; a=[2,3,4,5,10];  出力 12

“`java:triangle.java
import java.util.*;
public class Triangle{

static void triangle() {
Scanner std = new Scanner(System.in);
int n = std.nextInt();
int answer = 0;
int[] a = new int[100];//辺の本数は最大で100本
for(int i = 0; i

元記事を表示

TDDで電卓を作ってみた

# はじめに

[前回](https://qiita.com/mickie895/items/f5079f7b6683e71a8381)、Javaの勉強会の資料を作った話をした。
そこで出した、一昔前にはGUIアプリケーションのサンプルの定番だった「電卓」、それをできるだけ丁寧に実装できないか試してみた。

# 結果

せっかくTDDで少しづつ実装するのだから、実装していった過程を日記形式にしてみました。

https://note.com/mickie895/m/m0671be86f61a

そして実際にコーディングした結果がこちら。

https://github.com/mickie895/swing_calc_for_education

# 工夫した部分

* 前回から準備していた、GUI部分と計算部分の処理の分離。
* GUIはGUIの実装と、計算機能にテキストを送り、結果を受け取っているだけのクラスにした。
* switch文を極力減らす。よくあるサンプルではswitch文にする計算処理はHashMapとクラス化によって振る舞いを分離。
* クリア周りが実

元記事を表示

AWS LambdaにJava11のプログラムをデプロイし、パラメータストアから値を取得するメモ

### パラメータストアに適当なキーを保存
– キー名:testkey
– 値:test-value

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/eaad3e6f-0cfe-83bd-d7f5-66f767ed4d28.png)

### ラムダ上に関数をデプロイして実行
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/0af6dfb2-917e-5c14-836c-92e720fb198a.png)

### 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/e6835c85-5c1d-bc31-fc9e-e05e8a704040.png)

### ソース作成からデプロイまで
– sam initでテンプレートを作成(AWS Quick Start

元記事を表示

Apache Beamで実装したストリーム処理でDoFnからデータストア参照してエンリッチする

## はじめに

現状ではFlinkのDataStreamAPIを使用して実装しているストリーム処理について、Apache Beamを使用する場合はどのように実装すればよいのかを調べています。その中で、ストリーム処理中でデータストアからデータを取得し、ストリームイベントのエンリッチメントを行う方法を試しています。
前提として、データストアにはアプリケーションのメモリ内では保持しきれないレベルの大量データが保存されており、ストリームイベント内の項目をキーとしてデータストアからキーに紐づくデータのみを取得する必要があるケースを想定しています。

FlinkのDataStreamAPIの場合は[Async I/O](https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/operators/asyncio/)を使用していましたが、Beamのドキュメント内ではFlinkのAsync I/O相当の機能の記載が見つけられませんでした。
ググって見つけた以下の記事では、エンリッチメント方法として3つ

元記事を表示

AndroidStudioで簡易的なじゃんけんアプリを作ってみた。

どうも、Pythonを主軸に開発を行っている学生エンジニアのirohasです。
今回はAndroidstudioで簡易的なじゃんけんアプリを作成してみたので共有しようと思います。

~使用物~
・AndroidStudio
・Java
・デバイス(AndroidStudio内のエミュレーターでもおk)

まずはじゃんけんをするために必要な画像たちをresフォルダのdrawableフォルダに格納していきます。
必要な画像を格納したら、画面のデザインに入っていきます。

画面のデザインはActivity_main.xmlで行います。
コードでデザインしたい方はコードで、目視でデザインをしたい方はデザインタブをクリックして自由にデザインしましょう。
僕はコードがやりやすかったのでコードでデザインしました。

“`

元記事を表示

[java入門] finalについて簡易解説

# javaのfinalについて

・finalは修飾子の1つ。変化をさせたくない変数などに利用する。

#### finalとは
修飾子の一つ。それが最後のものであることを表す。
例)円周率のような値はどこであっても変わることのない定数なので一度代入されたなら決して変わって欲しくない。
そのため最後の値という意味でfinalを使っていく。
#### 種類
・final変数: 一度しか値を代入することができない変数を宣言できる。
・finalクラス: クラスにfinalをつけるとクラスを継承できなくなる
・finalフィールド: フィールドはクラス変数とインスタンス変数にfinalをつけて宣言することができる。
・finalメソッド: サブクラスでメソッドをオーバーライドできなくなる

元記事を表示

[java入門]java継承とは

##java 継承とは

・あるクラスを作っているときにクラスの一部を変更して使い回す際に実装するもの。
つまり、あるクラスで定義したプロパティとメソッドをそのまま受け継ぎつつ独自のプロパティやメソッドを差分として定具することが可能。
・継承元のクラスを「スーパークラス」と呼ぶ

サブクラスを継承して作成

“`
public class EmployeeDev extends EmployeeBase {
public EmployeeDev() {
}
public EmployeeDev(String employeeName) {
super.setEmployeeName(employeeName);
super.setDivisionName(引数を指定);
}
}
“`

・これでスーパークラスの「EmployeeBaseクラス」を継承したサブクラスの「EmployeeDevクラス」が完成した。

### 継承のメリット
・継承元のスーパークラスを変更すれば継承先のサブクラスまで変更反映される
もちろ

元記事を表示

[トリビアの泉]1から9の数字が重複なくある9桁の数字は必ず9の倍数になるらしいけど証明とかめんどいしPythonで調べてみた。

QuizKnockの動画で気になったことがあります(QuizKnock見すぎな)。

後日こちらの動画で$123456789$の桁をどう入れ替えても9の倍数になるという定理が紹介されていたので運命を感じ、組んでみることにしました。