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

JAVA関連のことを調べてみた2021年03月25日
目次

頭文字を打つだけで文章ができていくアプリケーションを作る

# できたもの
まずはできたものがこちら。
ソースコード:https://github.com/lake429c/InfiniteMonkeyTheorem
![InfiniteMonkeyTheoremDemo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521715/3e26c303-8e16-1f0f-8559-178ed6fb9cee.gif)

# 概要
標準出力・標準入力を利用するコンソールアプリケーション。
ひらがな一文字を入力すると、その文字から始まる単語と助詞・句読点が挿入されていく。
終了する際は「おわり」と入力。
Javaで作成。

+ Java SE 11
+ MySQL 8.0.23

製作時間 3時間半。
フローは以下の通り。
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521715/ef82f31d-52e8-609e-9375-7cf6c1125

元記事を表示

PlantUMLまとめ

# 資料の目的

PlantUMLを多方面に展開して、UML作成の工数を削減したい。

# PlantUMLとは?

PlantUMLとは、UMLをソースから自動生成するツールです。

# 結論

– 個人で使う分には、手早い管理が可能なので導入の価値ありです。以下の点について考慮不要として扱えます。
– 線の繋ぎ、矢印の向き、矢印の形、枠、図の被りの考慮

– 誰かへの説得資料としての完璧な資料にはできないものの、部署内の共有であれば強度十分(ある程度見やすくできるため)
– アクティビティ図だと多重if esle文、for文があまり対応していない。他のUML形式であれば問題なさそう。
– ソースによる差分管理が可能。

– PlantUML導入のハードルは、DockerかJavaを入れていない部署にとって高いので、他部署への本格的な展開は難しい。

# 導入手順

PlantUMLはJavaでUMLを生成するので、Javaのインストールが必要です。Javaのインストールが面倒であればDockerで利用が可能です。

導入手順は以下記事が分かりやすかったです。

元記事を表示

【Java】RomeでRSSリーダーAPIを簡単に実装する

## まえがき
・RSSリーダーって何?という方は [Wikipedia:フィードリーダー](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC) をご参考ください。
・あまり流行してないですが、作る機会があったので載せます。
・RSSリーダーはあまり処理を行わず戻りのオブジェクトをJSON形式で出力、 JS側で整形する方式を想定。
・JSで直接他ドメインのRSSを読もうとすると [CORS](https://developer.mozilla.org/ja/docs/Web/HTTP/CORS) のエラーが出てできないので、サーバー側でRSSリーダーの処理をしています。
・[Caffeine](https://qiita.com/a__i__r/items/44e9b0aa934de26ba5bd) 利用のキャッシュ有り

## 環境
・Windows10 64bit
・Spring Framework 4
・Rome 1.15.0

元記事を表示

AsyncTaskを使った非同期処理

メモです。詳細は下記URL先を参照してください。
https://dev.classmethod.jp/articles/asynctask/

元記事を表示

初心者の初心者による初心者のための配列プログラム課題のソースコード例

初心者の初心者による初心者のための配列プログラム課題のソースコード例です。

課題は下記のURLの問題です。

https://qiita.com/nogizakapython/items/dd0bb83e729b9a7ffafe

私が書いたソースコード例です。(Java)

“`java
//
// 配列課題1模範解答(Java)でかきました
// Author 坂道好きのITエンジニア
// Date 2021/3/23 新規作成
// 修正する場合は下に修正日と修正者名を書く
//

package paiza;

public class hairetsu2 {
public static void main(String[] args) {
//配列の宣言
int[] data = {7,4,5,8,2,6};
//配列の長さを取得する
int nagasa = data.length;
//配列の長さを出力する
System.out.println(“配列の長さは” + nagasa + “です”);

}

}

元記事を表示

現在の状況

プログラムに慣れる

 今自分は「すっきりわかるサーブレット&JSP入門」という本を読んで
プログラムを書いています。この本は「すっきりわかるJava入門」という
本を経た人が次に読む本で、実際にWEBサイトがどのように動いている
かが分かってくる内容になってます。

プログラムの練習

 この本の10章では簡易的な掲示板を作って開発を体験することができます。
最終的にこの掲示板が見なくても作れるようになることを目標にプログラム
のコーディングをしています。
内容としてはユーザーが書いた内容をほかのユーザーが視認できるものを
作っています。

最後に

しばらくSpringBootを使って開発をしていてJavaのコード内容を
忘れてしまったのでこれを機会にまたJavaの再復習を行いたいと思う。

元記事を表示

Java ExcelをTIFFで保存

TIFF は、ビットマップ画像の符号化形式の一種です。タグと呼ばれる識別子を使うことによって、様々な形式のビットマップ画像を柔軟に表現できます。今回は Spire.XLS for Javaを使ってExcelをTIFFで保存する方法を紹介してあげましょう! 

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。

f:id:lendoris:20210324105601p:plain

元記事を表示

Java  Excelに透かしを設定

ワードでは最初から透かし機能が存在するのですが、エクセルでは透かし機能が存在しないので、ちょっと難しいかなと思いっていますか?実はSpire.XLS for Javaというライブラリを通して、簡単に設定できます。

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Javal無料版をダウンロードしてください。

f:id</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>Excel</div>
<div class='tag-cloud-link'>エクセル</div>
<div class='tag-cloud-link'>透かし</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/d094514962af128b2188'>元記事を表示</a></div>
<h3 id=Eclipseを使ってJavaで実装してるとき、開いていたファイル(タブ)が消えるから設定してみた。(初心者向け、未経験者向け)

普段、仕事でJAVAを使った保守開発の案件に携わっています。
その際は、ツールとしてEclipseを使っています。

作業をやっているときに、
開いていたファイル(タブ)が他のファイルを開くと”消えていること”があるので、度々開くのがめんどくさいので、設定しました。

**~手順~**
1 **ウィンドウ**
2 **一般**
3 **設定**
4 **エディター**
5 **エディターを自動的に閉じる**
6 **適用して閉じる**
7 **Eclipseを落として、再度立ち上げる**

1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1174366/111aa5b5-9ec3-d5ed-c67e-920e13c064f5.png)

基本のタブ欄から”ウィンドウ”をクリックする。

2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1174366/f175baab-60a6

元記事を表示

Javaの拡張ForループでMapをループするときの書き方

JavaでMapの拡張For文の書き方を忘れてしまったのでメモ的に記載。

“`java:SampleController.java
for(Map.Entry entity : map.entrySet()) {
System.out.println(entity.getKey());
System.out.println(entity.getValue());
}
“`

元記事を表示

なぜPythonにはsetter/getterメソッドがないのか?

# 概要
JavaやC++などの他のオブジェクト指向言語では`setter/getter`メソッドの使用が推奨されているが、Pythonには存在しない。
もともとJavaやC++に触れていた僕には「**なぜPythonにはsetter/getterメソッドがないのか?**」がすごく疑問だった。
さらに、Javaなどの言語の資料では
「**クラス内部の変数はprivateにして隠蔽せよ**」
と書いてあるが、逆にPythonの資料では
「**privateはなるべく使わずpublicを使え**」
と書いてあることが多い。
**矛盾しているのでは…?**

気になったのでいろいろ調べて見た結果、そこには**2つの理由**があることがわかった。
さらに、Pythonで`setter/getter`を使いたい場合の**1つの代替案**があるということもわかった。
この記事では

– オブジェクト指向とカプセル化について
– Pythonにsetter/getterメソッドが存在しない2つの理由
– setter/getterメソッドの代替案

の順に説明する。
最初のオブジェクト指向につい

元記事を表示

【paiza】【Java編】Cランクレベルアップメニュー 標準入出力  STEP: 2 複数行にわたる出力 解いてみた!

Aybeeです!

Javaのスキルアップのために、「paizaラーニング」さんの問題を解き始めました。
記録用ですが、お役に立てれば幸いです:innocent:

他の問題についても記事をアップしております。
興味がございましたら、マイページへどうぞ!

#はじめに
この記事では、「paizaラーニング」さんの以下の問題について記載しています。
より良くするためのアドバイス、お待ちしております!

プログラミング練習問題「複数行にわたる出力」

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step2

※当問題は、以下のように作成したコードを公開することが推奨されています。
![スクリーンショット (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/424017/9f51b8e5-9aab-019c-e19f-09d71eb92ea5.png)

#問題
整数 n が与えられるので、 n 回

元記事を表示

【paiza】【Java編】Cランクレベルアップメニュー 標準入出力 STEP: 1 単純な入出力 解いてみた!

はじめまして、Aybeeです!

Javaのスキルアップのために、「paizaラーニング」さんの問題を解き始めました。
記録用ですが、お役に立てれば幸いです:innocent:

#はじめに

この記事では、「paizaラーニング」さんの以下の問題について記載しています。
より良くするためのアドバイス、お待ちしております!

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step1

※当問題は、以下のように作成したコードを公開することが推奨されています。
![スクリーンショット (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/424017/37c5fead-bd3a-909f-8a4e-d2d8b745aaa2.png)

#問題

文字列 s が与えられるので s をそのまま出力してください。

##入力される値

入力は以下のフォーマットで与えられます。

s

文字列 s が 1

元記事を表示

ArrayList+クラス+拡張for文

###Drink取り出し
分かりやすかったので。

“`ArrayListClass.java
public static void main(String[] args) {
var drinkList = new ArrayList();

//Drinkクラスを格納するArrayListに飲み物を追加
Drink coffee = new Drink(“コーヒー”,1,130);
drinkList.add(coffee);

Drink water = new Drink(“水”,2,100);
drinkList.add(water);

//取り出すメソッドの呼び出し
displayProduct(drinkList);
}
//メソッドの定義/ArrayListからDrinkクラスのフィールドを順に取り出す
public static void displayProduct(ArrayList

元記事を表示

[Android][Java]ボタン付きのカスタムセルのListViewを作成する

ボタン付のカスタムしたセルでListViewを作成する方法を記載します。
リスト表示する場合にはRecyclerViewの方が柔軟に様々な事ができますが、その分実装量が多くなるため、簡単に実装ができるListViewについて書いていきます。
完成イメージは以下です。

AndroidStudioで空のアクティビティを作成した状態から始めます。
#1.layout/activity_main.xmlにListViewを定義する
空のアクティビティを作成すると、ConstraintLayoutだけが定義されている状態なので、以下のようにListViewを定義します。

“`activity_main.xml

元記事を表示

[Android/Java] Jetpack LifecycleObserver

Android Studio 4.1.3(windows版) で動作確認しています

Jetpack LifecycleObserverの簡単な説明とサクッと試すためのコードです

Android DeveloperのLifecycleObserverの説明は以下です

https://developer.android.com/topic/libraries/architecture/lifecycle?hl=ja

getViewLifecycleOwner()についてはこちら

https://developer.android.com/reference/androidx/fragment/app/Fragment#getViewLifecycleOwner()

## 確認用コード
各イベント/イベントの引数は省略できます
Lifecycle.Event.ON_ANYはすべてのイベントを受け取れて
Lifecycle.Event.ON_ANYのみ引数でLifecycle.Eventを指定できます
getCurrentState()で現在のLifecycleの状態も取得できます

元記事を表示

Java 変数修飾子についての 簡単な説明 と 自分なりの解釈

#普段からよく目にするJavaの変数修飾子
* **public**
* **private**
* **static**
* **final**

上記4つのみ対象にしています

##public
* **簡単な説明**
どこからでもアクセス可能な変数

* **自分なりの解釈**
基本的には明示されていないもの
メンバ変数(フィールド変数)で変数宣言時に外部から参照できる理由は
省略されて見えないだけ

“`java:publicについて
public class Main {
//明示してないがpublic
int a;

//明示してpublic
public int b;

public static void main (String[] args) {
}
}
“`
##private
* **簡単な説明**
同一クラスからのアクセスのみ許可

* **自分なりの解釈**
**簡単な説明**の通り、同一クラスからのアクセスのみ許可するもの
外部クラスから参照したい場合は、メソッド経由(getter or setter)で参照が可能

“`ja

元記事を表示

ProcessingでTwitterを表示&投稿のやり方

##前書き
Processingを学んでいた途中で、Twitterの情報の表示ができるサイトをある方から
教えてもらいました。Twitterは日ごろから使っているため身近なもので
ProcessingとTwitterAPIの勉強ができるのであれば
一石二鳥じゃんと思って始めました。

次からSTEP事に手順を踏んでプログラムを完成させていきましょう。
またProcessingのダウンロードなどは他の記事を参考にしてください

今回の開発環境はProcessing3.0で言語はJava
OSはWindows10となっています

今回の記事は(http://www2.kobe-u.ac.jp/~tnishida/misc/processing-web-api.html)
この記事の内容を元に改良したものとなっています。
この記事を書いた人には頭が上がりません

完成品は自分のタイムラインの確認とツイートができるものになっています。
正直実用性は微妙ですがtwitterAPIの勉強の第一歩としていいと思います。
今回の完成品はいたってシンプルな構造にしていますので
完成後は背景の色を変えたり

元記事を表示

javaで記述した TimSortよりも 高速 かつ 安定・安全 な qsort (Sqsort)

最近のソートは、クイックソートに代わってマージソートが主流のようです。
最大の理由は「安定」性にあると思われます。しかし、マージソートは
 (1)要素の移動回数が多い
 (2)同じキー値が複数現れる場合でも速度向上が十分には望めない
などの欠点があります。
#####このことから「安定」な qsort (Sqsort) (比較ソート) を作りました。
#####最大の特徴は、キー値に同じ値が現れる場合に極めて高速なことです。
Sqsortはjavaで記述してあり、同じくjavaで記述したTimSortより高速です。
大雑把にいうと、Sqsortは補助配列(bas2)と対象配列(base)で
以下のような移動を繰り返します。

“`
bas2:…………… → bas2:5555……77787 → bas2:……….77787
base:357358257257237 A base:332223……… B base:3322235555…..
“`

プログラム(約150行 classファイル 3164b

元記事を表示

[Android/Java] Jetpack LiveData (Jetpack ViewModel MVVM+Repositoryパターン)

Android Studio 4.1.3(windows版) での流れとなります

ここではMutableLiveDataをRepositoryで持ち単純なデータのModelを扱うだけの
シンプルな構成で一連の流れを説明します

以下の記事のプロジェクトベースでの説明となります

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

Android DeveloperのJetpack LiveData/MVVM+Repositoryパターンの説明は以下です

https://developer.android.com/jetpack/guide?hl=ja

## Layoutの準備
ここではViewBindingを使用して実装します
ViewBindingの設定方法を知りたい方は以下を参照してください

https://qiita.com/smurata_pvt/items/99cd5f878b4eedb84dc8

MainFragmentのテンプレートにあるTextViewはidが指定されていないため
ここではtext

元記事を表示

OTHERカテゴリの最新記事