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

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

Java 標準出力から二次元配列での受け取り方、行列の入れ替え方

#Java 標準出力から二次元配列での受け取り方、行列の入れ替え方

##行(横)ごとに値を受け取る
####inputがint型の場合

【input】
1 2 3
4 5 6
7 8 9
0 1 2

“`java
// スキャナークラスのロード
Scanner scan = new Scanner(System.in);
// 受け取り用配列
int[][] line = new int[4][3];

// トークン取得、配列格納
for (int i = 0; i < 4; i++) { line[i] = new int[3]; for (int j = 0; j < 3; j++) { line[i][j] = scan.nextInt(); } } // 配列の中身表示 for (int i = 0; i < line.length; i++) { for (int j = 0; j < line[0].length; j++) { System.out.println("line[" + i + "][" + j + "] = " + line

元記事を表示

SpringSecurityの基本のき

最近、現場でログイン機能を実装する機会がありました。
SpringSecurityというフレームワークを使用したのですが、クセが強くてとっつきにくかったので記事にしておこうと思いました!
完全に理解しきれておらず、変な部分もあるかもしれませんがご了承ください。

##SpringSecurityとは
アプリケーションにセキュリティ機能を追加するフレームワークです。
主に、認証機能、認可機能を提供します!

##ファイル構成

今回動作させたファイル構成になります。

“`
├ src/main/java
└ com.example.demo
└ SecurityConfig.java
├ controller
├ AdminController.java
├ LoginController.java
└ SuccessController.java
├ model
├ CustomUserDetails.java
└ User.java
├ repository
        ├ LoginRepository.jav

元記事を表示

HTTP domain

“`
String toDomainUrl = getToDomainUrl(request.getRequestURL(), request.getServletPaht());

private String toDomainUrl(StringBuffer requestURL, String servletPath){
return requestURL.delete(requestURL.indexOf(servletPath), requestURL.length()).toString();
}

“`

元記事を表示

【C#・Java】DBで絞り込み検索

#絞り込み検索のサンプルコード
テーブルに対して絞り込み検索を行うために必要なSQL文を生成するロジックです。
そのままでは使えませんので適宜編集してください。

###C#版 サンプルコード

“`csharp:Refinement.cs
string cnd1 = textBox1.Text;
string cnd2 = textBox2.Text;
string cnd3 = textBox3.Text;
string cnd4 = textBox4.Text;
string cnd5 = textBox5.Text;

List List = new List();

// 絞り込み条件式の生成
if (!cnd1.Equals(“”))
{
List.Add(“CONTRACT_DATE>='” + cnd1 + “‘ “); // (例)契約日付の最小値
}
if (!cnd2.Equals(“”))
{
List.Add(“CONTRACT_DATE<'" + cnd2 + "' "); // (例)契約日付の最大値 } if (!c

元記事を表示

springframework.security JWT実装サンプル

# はじめに
springframework.securityでのJWT実装サンプルです調べてみると、「難しい・分からない」みたいなコメントがたくさん出てくるので、まとめます
実際、ほかにもサンプルはあるのですが、コピペしても動かないことが多々あったのでサンプルの1つとしてどうぞまた、「難しい・分からない」を解消するために処理の流れも追っていきたいと思います

# ソース
下記のソースをダウンロードしておいてください

https://github.com/HawkClaws/SpringSecurityJWTExample

# 必要なクラス群
+ SecurityConfig
– springframework.securityのconfigを記載
+ User
– springframework.securityの「UserDetails」の実装
+ UserRepository
– UserモデルのRepository
+ UserServiceImpl
– springframework.securityの「UserDetailsService」の実装
+ J

元記事を表示

【Scala】値制約(Refined依存型)をmatchのcase条件節で使う方法:case classを使え!

以前書いた記事では、ユーザ定義の依存型のクラス名(type別名)を使って、型レベルのパターンマッチを試みに成功しませんでした。

https://qiita.com/electronics_diy721/items/391ab4b9e1d78ee3a7a6

Refinedで定義した値制約に、__*type*キーワード__で__別名*ConditionedInt*__を付けた後、

>“`Scala:sbtConsole
>scala> type ConditionedInt = Int Refined Interval.ClosedOpen[10000, 10000000]
>type ConditionedInt
>
>scala>
>“`

case節のマッチング対象に、Stringと並んで、__*ConditionedInt*__を指定すると、認識されない。

>“`Scala:sbtConsole
>scala> def class_check(a: Any) = {
> | a match {
> (省略)
> | case _:

元記事を表示

Java PDFを透過的な背景付きの画像に変換

Spire.PDF for Javaは、PDFのドキュメントをイメージに変換するために、Pdfdocument.saveasy ()メソッドを提供しています。バージョン4.11.1以降、PDFファイルのイメージ変換機能をサポートしてきています。さて、この記事ではJavaアプリケーションでPDFを透過的な背景付きの画像に変換する方法を紹介していきたいと思います。

下準備

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

<

元記事を表示

Processingを利用して魚群再現をする(2)

[Processingを利用して魚群再現をする(1)](https://qiita.com/siro_mochi/items/ea11a839ee699a4561dd)からの続きです。
Processingはカメラを利用することによって、鑑賞者の動作によりイメージを変化させていくインタラクティブデザインを作ることが可能になっています。

#webカメラの利用
せっかくProcessingを利用しているので、カメラを利用してインタラクティブデザインとして発展させていきます。人によってはカメラの画像を利用して、オプティカルフローの実装を行っていますが、それはまたの機会にやります。
Processingでは画像イメージをPImage型として利用します。
PImage型の詳細なテキストは[リファレンス](https://processing.org/reference/PImage.html) に載っています。
PImageの配列の値を利用して、画像に対して魚の動きが変わっていくように実装していきます。

##Webカメラの起動
それではWebカメラの起動から行ってきます。
今回は画像処理ライ

元記事を表示

Couchbase Lite 機能解説:インデックス作成

Couchbase Liteの機能全般について、以下の記事も合わせてご参照ください。

https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417

## 概要

インデックスを作成すると、クエリのパフォーマンスを高速化できます。クエリは、インデックスを利用して、ドキュメントのセットを絞り込むことができれば、より迅速に結果を返すことができます。

## 新しいインデックスの作成

次のデータモデルに含まれる`type`、`name`プロパティを指定して新しいインデックスを作成します。

データモデル

“`JSON
{
“_id”: “hotel123”,
“type”: “hotel”,
“name”: “Apple Droid”
}
“`

インデックスを作成するコードは次のようになります。

##### Android

“`JAVA
database.createIndex(
“TypeNameIndex”,
IndexBuilder.valueIndex(

元記事を表示

AtCoder226をやった(Java)

AtCoder226をやった。

##[A](https://atcoder.jp/contests/abc226/tasks/abc226_a)
四捨五入の問題、
JavaのRound関数で一発だった。
Roundを使って、もし”まるめ”などの事象に遭遇した場合、整数部と小数部で受け取り方を変えるのが良策な気がします。

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
System.out.println(Math.round(Double.parseDouble(str)));
}
}
“`

##[B](https://atcoder.jp/contests/abc226/tasks/abc226_b)
何通りのパターンが

元記事を表示

C言語の構造体が分からなかったがなんとなくわかった話

結構初歩的な話ですが、自分用メモ。
個人的に、C→Javaは入りやすいイメージですがJava→Cはなんとも。。。
構造体はJavaのクラスのように、構造体の中で定義されたデータ型はメンバ変数のように扱うのです。

※ここではアロー演算子については触れません。

##Javaソース
クラスHogeをインスタンス生成することで、Hogeクラスのint型変数の値を出力、書き換えができます。

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Hoge hoge = new Hoge();
System.out.println(hoge.num);
hoge.num = 6;
System.out.println(hoge.num);
}
}
class Hoge{
int num = 5;
}
“`

##C言語ソース
**実体**を持つ構造体に限る

元記事を表示

【Scala】関数の引数にRefined値制約を付ける場合、その引数にリテラル値ではない「変数x」が渡された場合も正常に動作させる方法

Refinedで定義された値制約が付いたオブジェクトは、数値リテラル(1, 175など)や文字列リテラル(”abc”など)を与えると、オブジェクトを初期化宣言させることができます。

他方で、すでに定義済みの変数(x, y, customer_name, sales_volumeなど)で初期化宣言をしようとすると、「リテラル値でないと受付けられません」というエラーメッセージが吐かれてしまいます。

そのため、関数の引数にRefined値制約を付ける場合、その引数にリテラル値ではない「変数x」が渡された場合は、エラーが発生してしまうことになります。

そうした事例が、以下のウェブページで報告されています。

http://ja.uwenku.com/question/p-daphfiiv-gp.html

>“`Scala:
>package xxx
>
>import eu.timepit.refined._
>import eu.timepit.refined.api.{Refined, Validate}
>import eu.timepit.refined.auto._

元記事を表示

【個人開発】独学 + 職業訓練校でプログラミングを学び、ブックマークサービスを作りました。

# 1. はじめに
シンプルを追求したブックマークサービス「5Keeps」(ファイブキープス)を作りました。

|![5Keeps_ogp_jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1048052/ecccda94-9098-ca42-c67e-6eb9e5aa5a1f.png)|
|:–|

2020年11月に未経験からプログラミングの学習を開始して、あっという間に1年が過ぎ去り、ようやく自作アプリのリリースにこぎつけました。この記事では、前半に開発したサービスについて解説し、後半に1年間の学習の過程をまとめています。

– 5Keepsへのリンク
https://www.5keeps.com/

– ソースコード
https://github.com/daichihayasaka/five_keeps_ver01

# 2. サービスについて
### 2-1. サービス概要
#### 解決したい課題
プログラミング学習の環境は、時間や場所によって様々です。私の場合、家やカフェではMacb

元記事を表示

  Java PowerPointスライドに散点図を作成

はじめに

散点図とは、あるデータを元にして縦軸と横軸の2つの項目で量を計測し、分布を表現するために使うグラフのことです。には2つの軸があります。1つの水平軸(x軸)と1つの垂直軸(y軸)は、1つのデータ系列だけを受け入れます。今回はSpire.Presentation for Javaを利用してスライドに散布図を作成する方法を紹介します。

下準備

1.E-iceblueの公式サイトからSpire. Presentat

【AtCoder】JavaでABC226のA,B問題を解く!

ABC226のA,B問題をJavaで解きました。(C問題は難しくて解けませんでした)
備忘録としてまとめておきます。

#A問題『Round decimals』
問題ページ:[A – Round decimals](https://atcoder.jp/contests/abc226/tasks/abc226_a)

X:小数点第三位までの実数
X を小数第一位で四捨五入して得られる整数を出力する

小数点を持つ実数は、「Double型」で宣言します。
宣言(入力値を取得)した変数をroundメソッドを用いて、小数第一位で四捨五入します。

##コード
“`java
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);

// 画面入力値を取得する
double scanD = sc.nextDouble();

//小

Gradle test でOutOfMemoryError

SpringBootのテストをJenkinsで行っていたんですが、
ある日OutOfMemoryErrorで落ちて如何ともし難くなりました。かなしみ。

![OOM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38628/6a1ecbd2-edc8-84b9-d3b4-871979d0ca8d.png)

一応、何度かトライして復旧できたので、ログを残しておきます。

## 環境

– Java8
– CentOS7
– Jenkins
– JUnit5

## ①ヒープを増やす

“`
java.lang.OutOfMemoryError: GC overhead limit exceeded
“`
とあり、[Jenkins-SlaveでUnitTestがOutOfMemory](https://qiita.com/fake-deli-ca/items/b2cadce085595c57636d) (@fake-deli-ca) の記事によるとtestタスクはプロセスが別になって実行される(へー知

Scalaの依存型制約を使って、優良顧客リストをクラスレベルの型安全性を担保して生成するコード

以下の2つのステップで、__課金額を格納する数値リスト__に、__「10,000〜10,000,000の範囲内の数値しか格納できない」という制約条件__を、データ型制約として付加してみます。

この記事の続編として、上記の条件に合致する顧客名だけを格納できる、タプル__(ユーザ名, 累積課金金額)__のListを作るコードを書く予定です。

##( 手順 )

__【 Step 1 】__
数値区間[10000, 10000000]の範囲内にある整数値を、データ型クラス__*HighLoyalityCustomerSalesCondition*__として定義する。

>“`Scala:sbtConsole
>scala> type HighLoyalityCustomerSalesCondition = Int Refined Interval.ClosedOpen[10000, 10000000]
type HighLoyalityCustomerSalesCondition
>“`

__【 Step 2 】__

新しく生成するList型オブジェクトの__型シグネチャを「:

Android Studioでビルドエラーと格闘する

# はじめに
2016年頃まで自作のAndroidアプリを作って、[Google Play](https://play.google.com/store/apps/developer?id=hamham)に公開していました。
2021年の某日。突然Googleから**「ご対応のお願い: Google Play のポリシーをアプリが遵守していません」**とのメールがきて、アプリがストアから削除されてしまいました。
最後のアプリのアップデートをしてから5年も経って、突然こうなったということは、**Google Play側のデベロッパープログラムポリシーの変更に追随できておらず放置していたということが原因**と考えられます。
幸い、ポリシーに違反していた部分は軽微だったので修正自体は難しくなさそうです。
ポリシー違反部分を修正して再アップすればよいのですが、なんせ5年も前なので、開発環境を整えていたPCは手放してしまったし、アプリのビルドやストアへの公開方法も忘れてしまっている状態です。
残っているのはzipで固められた当時のソースコードのみ。

ということで、開発環境を構築して、アプリをビ

Scala:コンストラクタに「上限境界」制約をかけて、条件を充足しないインスタンスの生成を禁じる

###次のスクリプトファイルをコンパイルして実行する

####( クラス間の継承関係 )

HighLoyalityCustomerクラス –> NormalCustomerクラス –> Customerクラス –> Personクラス

####( 継承クラスのコンストラクタに付けた「上限境界」制約)

– CustomerContainerクラスのコンストラクタは、Customerクラスそれ自体か、Customerクラスのサブクラスのみ受け入れる。

>“`Scala:
>class CustomerContainer[C <: Customer](c: C) { ``` - GoodCustomerContainerクラスのコンストラクタは、HighLoyalityCustomerクラスそれ自体か、HighLoyalityCustomerクラスのサブクラスのみ受け入れる。 >“`Scala:
>class GoodCustomerContainer[H <: HighLoyalityCustomer](h: H) { >“`

“`Scala:bounde

HelloWorldまでの流れ

初投稿です。似たような記事はたくさんありますが、学習したことを備忘録や日記のような形でアウトプットしていきます。
間違った内容があればご指摘して頂けると幸いです。

環境はオンラインIDE(openjdk version “16.0.2”)を使用しております。特に用意することもなくお手軽なので。

今日のところはタイトルにもある通り、Hello Worldを表示するだけです。

以下のコードで表示できました。

“`java
public class Main{

public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
“`

“`text:実行結果
Hello World!
“`

ここに至るまでに分かったことは、mainメソッドはJavaのエントリーポイント(処理の始まり)だということ。
mainメソッドには単語がズラリと並んでいて「なんだこれは」と思いネットで調べたところ、

・アクセス修飾子はpublic
・stat