JAVA関連のことを調べてみた2022年09月05日

JAVA関連のことを調べてみた2022年09月05日

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

# Python

https://qiita.com/G-Rape/items/cd3f2f284ba990164564

# Ruby

https://www.tohoho-web.com/ruby/operators.html

# PHP

https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806

# Java

https://qiita.com/suema0331/items/7045e3ce3e2f5faa9acf

# JavaScript

https://qiita.com/uhyo/items/cc92a553059274d85403

# Perl

https://perlzemi.com/blog/20161005147566.h

元記事を表示

AtCoder ABC267 C問題 詳解

# AtCoder ABC267 C問題 詳解
ABC267 C問題の公式解説が物足りなかったため、備忘録の意味も込めて詳解を投稿します。

### 問題
> “`math
> 長さNの整数列A=(A_{1},A_{2},…,A_{N})が与えられます。\\
> 長さMのAの連続部分列B=(B_{1},B_{2},…,B_{M})に対する、
> \sum_{i=1}^{M}i×B_{i}
> の最大値を求めてください。
> “`
すなわち、
“`math
f(x)=1×A_{x}+2×A_{x+1}+\dots+M×A_{x+M-1}, (1\leq x\leq N-M+1)\\
“`
の最大値を求める問題です。

### 詳解
##### 総当たりの場合
まず、総当たりを考えます。
$f(1)$から$f(N-M+1)$を全て計算した後、最大値を求めればよいです。
このとき、$f(x)$を求めるのに$M(\leq N)$回加算を行い、その操作を$(N-M+1)$回行うので計算量は

“`math
O(M)×O(N-M+1)\leq O(N)×O(N-M+1) = O(

元記事を表示

【Java】アノテーション

# 学習したアノテーション

### コントローラークラスで使うアノテーション

#### `@controller`
そのクラスがコントローラーであることをSpringに伝えるためのアノテーションです。

#### `@Responsebody`
ブラウザからのリクエストに対して、直接HTMLを返す(戻り値がそのまま返る)際に利用するアノテーションです。

#### `@GetMapping`
`@Mapping`は、ブラウザで入力されたURLと、実行されるメソッドを紐づけるためのアノテーションです。
GETリクエストを処理します。

#### `@PostMapping`
POSTリクエストを処理します。

#### `@ModelAttribute`
任意のデータをModel型のオブジェクト内に格納することができます。

#### `@PathVariable`
URLに含まれるパラメータを受け取るためのアノテーションです。

### リポジトリクラス・データアクセスクラスに使うアノテーション

#### `@Data`
対象クラスにgetter/setterでアクセスすることを

元記事を表示

要素数が異なる2次元配列の取り出し方(備忘録)

# 要素数が異なる2次元配列の取り出し方

“`java
public static void main(String[] args) {
// 配列用意
int[][] array = new int[][] { { 1, 2 }, { 2, 3, 4 } };

// 2次元配列の要素数
System.out.println(“2次元配列の要素数: ” + array.length);
// 2次元配列の[0]に入っている配列の要素数
System.out.println(“2次元配列の[0]に入っている配列の要素数: ” + array[0].length);
// 2次元配列の[1]に入っている配列の要素数
System.out.println(“22次元配列の[1]に入っている配列の要素数: ” + array[1].length);

// 配列の中身全てのとり出す
for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { Syst

元記事を表示

ABC267A~Dの解答[Java]

## はじめに
今回も4完できたのでDまで書こうと思います。

では見ていきましょう。

## A – Saturday
問題文は[こちら](https://atcoder.jp/contests/abc267/tasks/abc267_a)

if~elseで実装しました。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args)throws IOException{

//Sの受け取り
String S = System.in.next();

//全部書く(根性)
if(S.equals(“Monday”)){
System.out.println(5);
}else if(S.equals(“Tuesday”)){
System.out.println(4);
}else if(S.equals(“Wednesd

元記事を表示

JavaFX周りの備忘録

## 本記事の前提事項
※記事を書いている人は過激派です。

どっか行けヽ( ・∀・)ノ┌┛Σ (Eclipse)

三(メモ帳) ლ(^o^ლ)おいで
三(コマンドプロンプト) ლ(^o^ლ)おいで

## 前段
JavaFXと言えば、JavaでGUIアプリケーションを作るときに使われる便利なフレームワークだ。
AWT、Swingといった旧来のフレームワークよりも簡潔に、そして表現力を豊かにしたフレームワークだ。

基本的には`javafx.application.Application`クラスを継承したクラスを定義し、GUIをFXMLで定義し、`Controller`クラスを定義してイベントハンドラを割り当てたりする。

Java8の頃にはJDKにも組み込まれ、作ったjavaファイルをコンパイル→jarファイルに変換すれば、`java -jar App.jar`だとかで走らせることができた。

### そんなJavaFX君に悲劇が…
2018年頃だっただろうか、Java8からJava11への変更に伴い、JDKから追い出されてしまったのだ。
まるで幼児がニンジンやピーマンを皿の脇に追

元記事を表示

めちゃくちゃ簡易のビンゴゲームを作る #1

# はじめに
こんにちは。前回の記事の最後でGridLayoutを使ってビンゴを作ろうと思い立ったので挑戦。

イメージは、
+ 「ビンゴカード作成」ボタンでランダムな数字を5×5並べたカードを作る。数字が被らないようにする処理が難しそう…
+ 「ゲーム開始」ボタンで、ゲーム画面に移行
+ 「抽選」ボタンでランダムな数字がでて、カードのその数字があれば背景色を変えるとかそんなことをする。こっちも同じ数字は出ないようにしたいかも。
+ (もしできそうだったら)リーチやビンゴ時に文字が表示されるようにする

こんな感じかな。ビンゴゲームと言いつつも、複数人でできる仕様じゃなくて、ただむなしく一人でやるもの笑

# だいたいの見た目
画面サイズは適当。
“`Java
public class BingoGame extends JFrame implements ActionListener{

JButton mkCardBtn;
JPanel BingoCardPanel;
JLabel bingoNumLabel[] = new JLabel[25];
Container

元記事を表示

のメモ

## について

`List list = new ArraryList<>~`などたまに見かける型、。
**ジェネリクスのワイルドカード**としての役割?があるみたい

本来の意味としては、「万能の力を持つカード」「他のカードの代用として使用できるカード」みたいな意味がある。
IT分野では、検索機能などで役立つ(部分的な検索など)

### メリットとデメリット

ジェネリクスでこのワイルドカードを使えば、**データ型を後で宣言できる。**

使用するデータ型に**幅**が生まれる!!

しかし、**newが使用できない**という点において注意が必要。
型の設定が曖昧であるため、生成ができない(詳しくは、コンパイルする時に、型パラメータが消える)

### 他の使い方
また、``で**上限**を設けることも可能。

## まとめ

今回は、ジェネリクスのワイルドカードについて、少し勉強した。

まだ、ジェネリクスのワイルドカードについて、しっかりと知れたわけではないため、より理解を深めていきたいと思う。

元記事を表示

整数型に ‘c’ が代入できるそれぞれの事情

# これは何?

https://qiita.com/Cowsisland/items/71248bdd081089b7ba09

という記事で

“`c:c
int a;
a = ‘c’;
“`

が問題なく動いている話や [素晴らしいコメント](https://qiita.com/Cowsisland/items/71248bdd081089b7ba09#comment-732ca0b2d7c2a7be908d) があって面白かったので、記事にしてみた。

# それぞれの事情

## C言語

C 言語の場合、そもそも `’c’` の型が `int` である。
なので

“`c:c
int a;
a = ‘c’;
“`

は、わりと面白くない。

## C++ / C# / D / Java

C++ の場合、 `’c’` は `char` となっている。なので

“`c++:c++
int a;
a = ‘c’;
“`

とした場合、`char` から `int` への暗黙の変換が発生する。この変換はほぼ必ず(`sizeof(int)==sizeof(char)`

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

# Python

https://qiita.com/FukuharaYohei/items/459f27f0d7bbba551af7

# Ruby

https://qiita.com/shizuma/items/4279104026964f1efca6

# PHP

https://qiita.com/miriwo/items/da463cfcae441400381a

# Java

https://qiita.com/suema0331/items/5dde9f91671100a83905

# JavaScript

https://qiita.com/iLLviA/items/b6bf680cd2408edd050f

# Perl

https://perlzemi.com/blog/2

元記事を表示

ECS上のTomcatアクセスログをCloudWatch Logsに出力する

# はじめに

ECS上で動作するコンテナについては標準出力にログが流れるよう設定する必要がありますが、Tomcatアクセスログはデフォルトで標準出力には流れません。
本記事ではTomcatのアクセスログを標準出力とし、CloudWatch Logsに出力する方法を紹介します。

## 環境
– Java11
– tomcat9.0

## 実施内容

方法としては非常にシンプルです。
– アクセスログを日付毎に出力するのではなく、固定ファイル名とする
– 固定ファイルと標準出力のシンボリックリンクを作成する

## server.xmlの用意

server.xmlのAccessLogValveを以下のような設定にする事で、アクセスログを固定ファイル名「access_log.txt」に出力するよう設定します。

“`server.xml
WindowsでJavaをインストールせずに使って、SikuliXを持ち運び可能にする

+ RPAを導入したいけど、お金はない。
+ SikuliX使いたいけど、Javaをインストールしたくない。

そんな人向けの情報です。

—-
## 手順

以下、Oracle OpenJDK を例にします。
1. [jdk.java.net](https://jdk.java.net/) から、Java8 以上で64bit版のWindows用buildをダウンロードします。
ex) [openjdk-20-ea+13_windows-x64_bin.zip](https://jdk.java.net/20/)
1. ダウンロードしたファイルを解凍して、`jdk-xx` フォルダを取り出します。
また、`jdk-xx` フォルダと同じ場所に `sikulixide-2.0.5.jar` を配備します。
1. 環境変数`PATH`に`java.exe` を追加するバッチファイルを作成し、バッチファイルから SikuliX を起動します。
**例)JDK-20 の場合**
“`cmd: sikulix_start.bat
@echo off
pushd %~dp0

元記事を表示

Java:PDFファイルの結合方法

内容がより密接に関連しているが、PDF文書の複数のファイルに分割されている場合、我々は、コンテンツの我々の読み取りや文書の処理を容易にするために、PDF文書にマージすることができます。 この記事では、Javaプログラミングを使用して**PDFファイルを結合する方法**を紹介します。

## 【依存関係の追加】
この方法は、無償のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
“`XML


com.e-iceblue
e-iceblue
https://repo.e-iceblue.com/nexus/content/groups/public/

元記事を表示

ABC043の解答[Java]

## はじめに
A~Cは自力AC、Dは解説ACしたものとなります。
昔のコードなので、そのままのも載せますが書き直した方が良さそうな時は書き換えた物も載せます。

では、見ていきましょう。

## A – キャンディーとN人の子供イージー
問題文は[こちら](https://atcoder.jp/contests/abc043/tasks/abc043_a)

単純にfor文でシミュレーションしました。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);

//値の受け取り
int N = sc.nextInt();

//答え用変数
int ans = 0;

//順に足していく
for(int i=1;i<=N;i++){ ans += i; } //答えの出力 System.out.println(ans); } } ``` 公式$\frac{

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

# Python

https://qiita.com/onishi_820/items/f3068d5533a1f4f5ae39

# Ruby

https://qiita.com/Morio/items/8f0dc0801cfcb98d8269

# PHP

https://qiita.com/Morio/items/1deca77b370851ed914f

# Java

https://qiita.com/DeraTosev/items/77cd689da4426b892793

# JavaScript

https://qiita.com/shirokuman/items/509b159bf4b8dd1c41ef

# Perl

https://perlzemi.com/blog/20

元記事を表示

Spigotプラグインのコンフィグファイルを読み込む

## コンフィグファイルとは
 プラグイン名のディレクトリ下に配置されるconfig.ymlのことです。
プラグインの中にはこのyamlファイルからデータを読み取って動くものがあります。

## config.ymlからデータを読み取る
 JavaPluginを継承したクラスで`getConfig().get[データ型] “config.yml内でのパス”`のように記述すれば取得することができます。
ですがこの方法だとメインクラスでしか読み取りを行うことができません。
メインクラスにごちゃごちゃ書くのはなんだか嫌ですね。
かといって別のクラスを作成してJavaPluginを継承しようとすると怒られます。

一つのプラグインにおいてJavaPluginを継承したクラスが複数存在するとSpigotに怒られる上にプラグインを認識してくれません。
起動時にめちゃくちゃエラーが出ます。(n敗)

### データ読み取り用のクラス
メインクラスとは別のクラスにconfig.ymlからデータを読み取るメソッドを置きたい。
さて、どうしたらよいでしょうか。
単純明快。
とりあえずYamlConfig

元記事を表示

Java Swing レイアウトで遊ぶ

## BorderLayout
BorderLayoutは画面を5つの領域(NORTH,WEST,SOUTH,EAST,CENTER)に分けて自動でコンポーネントの大きさを変えて配置してくれるレイアウトマネージャー。
公式ドキュメントはこちら。
https://docs.oracle.com/javase/jp/8/docs/api/java/awt/BorderLayout.html
とりあえず試してみる。
### フレームサイズ(400,600)の場合
“`Java
setBounds(100,100,400,600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton N_Btn = new JButton(“北”);
JButton W_Btn = new JButton(“西”);
JButton S_Btn = new JButton(“南”);
JButton E_Btn = new JButton(“東”);

元記事を表示

ABC044の解答[Java]

## はじめに
A~Cは自力AC、Dは解説ACとなります。
昔のコードなので、そのままのも載せますがなるべく見やすく書き換えたものも一緒に載せます。

では、見ていきましょう。

## A – 高橋君とホテルイージー
問題文は[こちら](https://atcoder.jp/contests/abc044/tasks/abc044_a)

特に考えずに場合分けをして解きました。
NがK以下ならN*X、Kより大きいならK*X+(N-K)*Yって感じです。
“`A.java
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//各値の受け取り
int N = Integer.parseInt(br.readLine());
int K = Integer.parseInt(br.readLine()

元記事を表示

ウマ娘で学ぶポリモーフィズム(多態性)

# ポリモーフィズム(多態性)の特徴とは・・・
あるメソッドの呼び出しに対して、それぞれのオブジェクト毎に異なる動きを実現出来ること。

# ウマ娘を例にすると
”あるメソッド”は、以下HorseGirlクラスのcallメソッドとする。
“`java:HorseGirl.java
package sample;

// ウマ娘クラス(抽象クラス)
public abstract class HorseGirl {
// トレーナーを呼ぶ!
public abstract void call();
}
“`
これをもとに、各オブジェクトに異なる動きを与える。
“`java:AirGroove.java
package sample;

// ウマ娘クラスを継承したエアグルーヴクラス
public class AirGroove extends HorseGirl{

@Override
public void call() {
System.out.println(“たわけ!”);

}

}
“`
“`java:RiceShower.java
package

元記事を表示

@overrideアノテーションについて

# アノテーションの種類

### @override

– **overrideをつけると「必ずオーバーライドしてください」と指定することが可能**
– スペルミスなどが抑制できる

“`

public class Test extends TestOverride {
 
@Override
public void outputs() {
System.out.println(“Hello World!”);
}
 
public static void main(String[] args) {
TestOverride cl = new TestOverride();
cl.output();
}
}
 
public class TestOverride {
 
public void output(

元記事を表示

OTHERカテゴリの最新記事