JAVA関連のことを調べてみた2020年08月30日

JAVA関連のことを調べてみた2020年08月30日

JavaFX + IntelliJ + Scene BuilderでGUIアプリケーションを作るサンプル

# はじめに
GUIアプリケーションを作りたいと思いました。GUIアプリを作るためのライブラリやフレームワークは色々ありますが、個人的には一番得意なJavaで作れたらいいなと思い、JavaFXを使って開発するための環境構築をしてみました。
~~サンプルを作っただけで満足しちゃったけど!~~

肝心なところは他の記事に丸投げするクソ記事ですのでご注意ください。
でも、他の記事に書かれているのと同じことをそのまま書くのは色々とアレだと思うので仕方ないのではないかと(言い訳)

ソースはこちらです。
https://github.com/dhirabayashi/javafx_sample

# 超適当な用語説明
## JavaFX
* Javaでいい感じのGUIアプリを作れるライブラリ
* もともとはRIAのライブラリだったが、~~RIAがオワコンになったため~~今は普通のGUIライブラリになっている
* 今はJDKに同梱されなくなったので、OpenJFXを別途導入する必要がある(Gradleがいい感じにやってくれるけど)

## IntelliJ(IntelliJ IDEA)
* Jav

元記事を表示

AtCoder Beginner Contest 177 C問題「Sum of product of pairs」解説(Python3,C++,Java)

注意)解答例はPython3のみ出来ております。C++,Javaの方は「全ての提出」からコードを見て実装することをおすすめします。

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 C問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中|準備中|この記事です|

#問題概要
$N$個の整数$A_1,…A_N$で構成された数列が与えられる。
$1 \leq i < j \leq N$を満たす全ての組$(i,j)$についての$A_i×A_j$の和を$mod(10^9+7)$で求めよ。 問題URL :https://atcoder.jp/contests/abc177/tasks/abc177_c ##制約 ・$2 \leq N \leq 2×10^5$ ・$0 \leq A_i \leq 10^9$ ・入力は全て整数 #解説 $A_1,...A_N$

元記事を表示

【Android 9.0 Pie Java】RecyclerView 長押しで要素毎に内容の変わるコンテキストメニューを表示する

RecyclerViewで要素を長押しして、要素毎に内容の変わるコンテキストメニューを表示する方法の記事が見当たらなかったのでメモしてみます!

↓完成イメージ↓
![7c30d4aa9804094e0e83ddb1b9247cb8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/85bfd135-43e4-7a80-315c-c2ee6e4e2fd7.gif)

## 実装方法
### コンテキストメニューの表示
Activity or Fragmentに

“`
View.OnCreateContextMenuListener
“`
をimplementsします。

“`java:SampleFragment.java
public class SampleFragment extends Fragment
implements View.OnCreateContextMenuListener {
“`
他にもViewHolderにimplementsするパターン

元記事を表示

AtCoder Beginner Contest 177 B問題「Substring」解説(Python3,C++,Java)

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 B問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中です|この記事です|準備中です|

#問題概要
文字列$T$が$S$の部分文字列となるように、$S$のいくつかの文字を書き換えます。
少なくとも何文字書き換える必要があるでしょう。
ここでの部分文字列は連続する部分列のことを指します。
例) `’xxx`’は`’yxxxy’`の部分文字列であるが、`’xxyxx’`の部分文字列ではない。

問題URL : https://atcoder.jp/contests/abc177/tasks/abc177_b

##制約
・$S$,$T$は$1$文字以上$1000$文字以下
・$T$の長さは$S$の長さ以下
・$S,T

元記事を表示

AtCoder Beginner Contest 177 A問題「Don’t be late」解説(Python3,C++,Java)

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 の解説をこれから始めます!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|この記事です|準備中です|準備中です|

この記事では主にA問題「Don’t be late」の解説をします!!

#問題概要
高橋君は青木君と待ち合わせをしています。
待ち合わせ場所は高橋君の家から$D$メートル離れた地点であり、待ち合わせの時刻は$T$分後です。
高橋君が今から家を出発し、分速$S$メートルで待ち合わせ場所にまっすぐ移動するとき、待ち合わせ場所に間に合うかどうかを判定しなさい。

##制約
・ $ 1 \leq D \leq 10000$
・ $ 1 \leq T \leq 10000$
・ $ 1 \leq S \leq 10000$

#解説
待ち合わせ場所に間に合うかどうかを判定すれば良いです。
つまり分速$S$メートルで$T$分移動した距離が、$D$メートル以上になるかどうかを判定すれば良

元記事を表示

新卒SESの備忘録 【Java 基礎編】

#はじめに。

私は、今年4月に新卒でSES企業に入社しました。
現在は、大手SIerにて客先常駐をし、経済産業省の補助事業であるプロジェクトに参画しています。

業務用PCには、自分の個人アカウントなどをログインすることが出来ません。
自分のメモを見ることが出来ないので、Qiitaだと検索して見れるので投稿しました。

#【Java 基礎編】

新人研修時のJavaのメモです。

##・順次、分岐、繰り返し

####どんなに複雑なプログラムでも、順次・分岐・繰り返しの3つの制御構造を組み合わせれば作成可能(構造的定理)

for文は、単純な反復処理に向いている。繰り返し回数が決まっている時など。
while文、複雑な処理が必要な反復処理に向いている。

・for文 繰り返し
 ①初期化処理  int i =0;
 ②繰り返し条件  i < 10;  ③繰り返し時処理 i++ ・while文 繰り返し(~の間は)  →制御構文の構成要素   [条件式]  分岐条件や繰り返しを続ける条件を示した式   [ブロック] 分岐や繰り返しで実行する一連の文の集まり ・switch文 各ca

元記事を表示

2日前の自分をぶんなぐってリファクタリングさせる。

現在とある会社に拾っていただきエンジニアとして研修を受けています。その研修の中で作成したコインゲームの出来がとても悪く講師の方に意見をいただいて修正したものを自分への戒めとして残しておきます。

### 書いたコード
まず書いたコードがこれです。

“`java
public Integer execute() {
if(this.possessionCoin == 0) {
return 0;
} else {
System.out.println(“You have” + this.possessionCoin + “Coin, Start the game? y / n”);
while(true) {
try {
int getCoin = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
S

元記事を表示

初心者が、JavaとMySQLでWebアプリ制作(随時、加筆中)

#はじめに
この記事につきましては、前回書いた通り進めております。
[Qiitaはじめました。まずはポートフォリオ作成と就職を目標に。](https://qiita.com/begin_h/items/99efafb8947563d537d1)

過去のWebアプリケーション制作の過程を書いていき、
結果的にポートフォリオとしてまとめることが目標です。

分からないことは率直に記載するので、アドバイスいただけますと幸いです。
初心者が模索しながら、随時加筆しております。(2020年8月24日〜)

#背景
プログラミングスクールで、「Java」「MySQL」「サーブレットとJSP」を学び、
その集大成として、Webアプリケーションを作成することになりました。

グループ協議の結果、【買い物の時に役立つアプリ】を作ることに決めました。

私自身、買い物のたびに、
「あれ、洗剤ってなくなりそうだったっけ?他に何かストック切れのもの無かったっけ?」
と思うことに、わずらわしさを感じていたことがきっかけです。

日常的な課題を解決するアプリ制作を通して、プログラミングへの理解を深めようと思いま

元記事を表示

[Java]Collectionへの要素の追加をコンパイルエラーにする

JavaのCollectionは、中身が変更できるかどうかは実装に委ねられています。
そのCollectionが変更できるかどうかは、ソースコードを確認するか、実際に動かしてみるまでわかりません。

例えばListインターフェースのjavadocには、次のように記載されています。

– [日本語](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/util/List.html#add(E), “日本語”)

> UnsupportedOperationException – addオペレーションがこのリストでサポートされない場合

– [英語](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html#add(E), “English”)

> UnsupportedOperationException – if the add operation is not supported by this lis

元記事を表示

3年目の今、気がつかされた誤解equalsメソッドと==の違い

# **誤解してました。**
今から、大体3年前くらい・・

言語のげの字も知らないような知識空っぽでJAVAでの開発プロジェクトに参画したとき・・

JAVAの教科書で学びながら、開発案件でセコセコ、コーディング・・

プルリク・・ダメ出し・・教科書・・修正・・プルリク・・ダメ出し・・修正・・google・・ダメ出し・・

そんな状態で働いてました。

そのとき、先輩に言われた一言・・

ずっと、脳裏に残っているのでしょうね。

### **Stringの比較は、equalsメソッドを使ってね。**

先輩の一言は正しいです。

だけど、日本語は難しい・・

ほんの少しの捉え方で、悪くも、善くもなるようです。

思わぬことに、こんな風に覚えちゃったんです・・

**「Stringの比較は、equalsメソッドを使ってね。」 == 「Stringの比較の時だけequalsメソッドを使う。」**

それから数ヶ月して、Oracle認定の

元記事を表示

MPAndroidChartで棒グラフを作ったらx軸ラベルがなぜかずれた話

#はじめに
たまたま機会がありAndroid Studioを用いて簡単なアプリ開発を行いました。
その中でグラフを書きたいと思い調べたところ「MPAndroidChart」というライブラリを用いればいいことがわかり、いくつかのサイトを参考にしながら棒グラフを作りました。
しかしその中でx軸のラベル設定がうまくいかず小一時間ほど苦労したので、その過程と解決策を記しておきます。
(余力があれば後から実際動かした画像も貼りたいところです)

#困った部分

今回の問題に関係ない部分は大分端折っていますが、大枠は以下のような感じ。
こちらの記事を参考にさせていただいています。

『MPAndroidChartでシンプルな棒グラフの作成』
https://qiita.com/iKimishima/items/7fd192a074739cf5290b

“` MainActivity.java
public class MainActivity extends AppCompatActivity {

protected BarChart chart;

@Override

元記事を表示

【忘備録】Java : 目的別に見るListの処理の速さ

# はじめに
コレクションとは`ArrayList`や`LinkedList`等の複数の要素を格納することができる箱。
今回は下記2つのコレクションについて書いていく。参考書に答えは書いてあるが自分で試して体感しておきたいと思います。出来たら配列とも比較していく。
・`ArrayList`
・`LinkedList`

# 結論
追加は多少、`ArrayList`の方が速い。(`LinkedList`も十分速い)
取得は段違いに`ArrayList`の方が速い。
削除は段違いに`LinkedList`が速い。

取得は`LinkedList`がやけに時間が掛かってしまうので
取得を伴うリストを作る際は`ArrayList`で良いんじゃないでしょうか。

“`
追加×取得 => `ArrayList`
追加×削除 => `LinkedList`
追加×取得×削除 => `ArrayList`
“`

## 1, 要素の追加

“`CompareList.java
import java.util.List;
import java.util.ArrayList;
import ja

元記事を表示

[ev3×Java] 単一モーターの制御

この記事はJavaでev3を操作してみたい人のための記事です。
今回はモーターをいろいろな方法で制御していきたいと思います。

#目次
0 . 用意するもの
1 . コードの構造
2 . Lモーターの制御
 2-0 . Lモーターを一定時間回転させるプログラム
 2-1 . Lモーターを一定角度回転させるプログラム
 2-2 . Lモーターを加速させていくプログラム
 3-3 . forループを使うプログラム
 2-4 . whileループを使うプログラム
 2-5 . if,elseを使うプログラム
3 . Mモーターの制御
最後に

#0.用意するもの
◯ ev3(インテリジェントブロック)
◯ Lモーター/Mモーター
◯ パソコン(eclipse)
◯ bluetooth
◯ microSD
◯ [API Documentation](http://www.lejos.org/ev3/docs/)(これをみながら進めていくのがオススメです。)

#1.コードの構造

◯今回使うプログラムは大体こんな形です。
まずは、この形についての説明です。

“`templ

元記事を表示

[ev3×Java] leJOS開発環境の構築(Eclipse on Mac OSX /bluetooth)

ev3をJavaで動かすための準備について書いていきます。

#目次
0 . leJOSとは
1 . 必要なもの
2 . 参考記事
3 . microSDの準備
4 . bluetooth接続
5 . SSH接続
6 . Eclipseの準備とプログラムの実行
最後に

#0.leJOSとは

レゴマインドストームのロボットにJavaのプログラミング環境を提供するシステムのことです。

今回は、**Mac OSX**で**bluetooth**を使ってev3を動かします。
また、Javaの統合開発環境である**Eclipse**を使ってプログラムをつくり、処理を実行します。

#1.必要なもの

◯ ev3(タンク)
◯ パソコン(Eclipse)
◯ bluetooth
◯ microSD
◯ [leJOS-API](http://www.lejos.org/ev3/docs/overview-summary.html)

#2.参考記事

こちらの記事を見て進めるのが一番いいと思います。

[【leJOS】mindstorm-EV3をJavaでプログラミングしよう【環境構

元記事を表示

ラムダ式とは(Java)

ラムダ式というのがどうしようもなく理解できなかったので、自分なりに簡略化して理解した結果を記載しています。

#無名関数
まず無名関数についてWikipediaから抜粋。

>プログラミング言語における無名関数(英語: anonymous functionあるいはnameless function)[1]とは、名前付けされずに定義された関数のことである。

>無名関数を表現するための方法には様々なものがあるが、近年[2]主流となっているのはラムダ式による記法である。

(Wikipedia(https://ja.wikipedia.org/wiki/無名関数))

#ラムダ式
つまり、ラムダ式とは無名関数を表現するための方法。(「->」こんなやつ)
→ラムダ式とは名前付けされずに定義された関数のこと。

ちなみにJavaで書く場合はこんな感じ。(Wikipediaの無名関数から抜粋。)

“`sample.java
import java.util.function.*;

BiFunction add = (x, y) –

元記事を表示

【Java】主なデータ型

## 概要
Java内で用意されている主要なデータ型を一覧化し、各型の特徴を整理する。

## 想定読者
– 初級Javaエンジニア

## データ型について
### データ型とは
プログラミング言語などが扱うデータをいくつかの種類に分類し、それぞれについて名称や特性、範囲、扱い方、表記法、メモリ上での記録方式などの規約を定めたもの。

引用元:[データ型とは – IT用語辞典 e-Words](http://e-words.jp/w/%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B.html)
### なぜ存在するのか
データの用途を明確にするため。

## 【Java】データ型一覧表
|データ型|値|備考|
|:————:|:————:|:————:|
|boolean|真(true) or 偽(false)|論理型|
|char|16ビット Unicode文字|※文字列ではない|
|String|文字列||
|byte|8ビット整数|-128~127|
|short|16ビット整数|-32,768~32,76

元記事を表示

【備忘】Spring BootでLogbackを使用する際の設定ファイル

備忘のためSpring BootにおけるLogback使用時の設定ファイルを以下に挙げる

“`




OTHERカテゴリの最新記事