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

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

算術演算

# 各プログラミング言語の算術演算

加減乗除の四則演算は大概同じなのですが、剰余が演算子が異なったり、インクリメント、ビット演算の有無などが演算子に影響を与えているパターンがあるので、個人的に整理しておきたいな・・・と。
誤植や追記がございましたら、ご連絡お願い致します。

|プログラミング言語|加算(和)|減算(差)|乗算(積)|除算(商)|剰余(余)|累乗|インクリメント|ビット演算|
| :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: |
|Excel | + | – | * | / |MOD()|^
POWER() |無|有|
|VBA | + | – | * | / |MOD()|^
POWER() |有|有|
|VB.net| + | – | * | / |MOD()|^
POWER() |有|有|
|C | + | – | * | / | % |math.hのpow()|有|有|
|C++ | + | – | * | / | % |mat

元記事を表示

Leetcode 169. Majority Element

# 169. Majority Element

https://leetcode.com/problems/majority-element/

## アプローチ
### HashMap

“`java
class Solution {
public int majorityElement(int[] nums) {
HashMap hashmap = new HashMap<>();
for (int num : nums) {
hashmap.put(num, hashmap.getOrDefault(num, 0) + 1);
}
int majority = nums.length / 2;
return hashmap.entrySet().stream().filter(obj -> obj.getValue() > majority).findFirst().get().getKey();
}
}
“`

元記事を表示

Leetcode 209. Minimum Size Subarray Sum

# 209. Minimum Size Subarray Sum
https://leetcode.com/problems/minimum-size-subarray-sum/

## アプローチ
### Sliding window(?) Two Pointer

“`java
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int start = 0;
int end = 0;
int sum = 0;
int result = Integer.MAX_VALUE;

while (start < nums.length) { sum += nums[start++]; // 合算 while (target <= sum) { // 基準を超過した場合、範囲を小さくする result = Math.min(start

元記事を表示

devcontainer を利用して Java(Amazon Corretto) + Localstack の開発環境をつくってみた

devcontainer の Java の事前定義済みコンテナ構成では、Microsoft Build of OpenJDK が利用されています。

Amazon Corretto と Localstack を利用したかったので、devcontainer の設定を変えて開発環境をつくってみました。

動作確認としては Amazon SQS を Localstack 上に構成して、送受信を行いました。

## 前提とする環境

– WSL2 および Docker がインストール済み
– [WSL2 + Docker で作る Docker 環境](https://qiita.com/ichi-ken/items/5a04a732524c72ff809a)

## 動作確認用プロジェクトの作成

[Spring Initializr](https://start.spring.io/)を利用してプロジェクトを作成します。

画面からも作成することができますが、今回は curl から作成しました(パラメータは`curl https://start.spring.io`から確認することができ

元記事を表示

【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650867/011a75bc-955d-b7b6-0548-068d522a5eba.png)

# 初めに

本記事は、私のブログにある『継承・インターフェイス・抽象クラス』シリーズ』を一つの記事にまとめたものです。全部で 106,227文字ありました…。この記事では 25,000文字くらいでお話しできればと思います。

なるべく簡潔にまとめたいと思います。詳細を知りたい方は以下のブログを読んでいただければと思います。

デザインパターンを勉強している時に、「は?インターフェイス?抽象クラス?何が違うの?」とか「継承ってなんか解ったような解らんような感じなんよな〜」って感じました。調べてみると、ほんとに期待した記事は出ませんでした。

– *interface を implements すると、クラスにメソッドの実装を強制できる*

よく見ます。「で??だからなんなん??いつ使うんや!」という気持ちでした。構文とかルールを公式ドキュ

元記事を表示

Repository~Service~Controller~html

—-
properties
—-

“`properties:application.properties
# DB
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/spring
spring.datasource.username=spring
spring.datasource.password=spring
#DB生成処理
#実行の際にはユーザーとデータベースが作成されている必要あり
spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:database/schema.sql
spring.sql.init.data-locations=classpath:database/data.sql

#devtoolの設定
spring.devtools.restart.additional-paths=src/m

元記事を表示

Leetcode 224. Basic Calculator

# 224. Basic Calculator
https://leetcode.com/problems/basic-calculator/

## 難易度
### HARD

## アプローチ
### Stack
O(n)

“`java
package com.leetcode.hard;

import java.util.Stack;

public class BasicCalculator224 {
public static void main(String[] args) {
System.out.println(calculate(“2+(3)”));
}

public static int calculate(String s) {
int sum = 0;

// one: +
// minus one: –
int isSignPlus = 1;

Stack stack = new Stack<>();

元記事を表示

競プロ典型90問 010-Score Sum Queries(★2)をJavaで解いてみた!

こんにちは、[Kuni](https://qiita.com/kuniengineer)です。現在Javaを学習中で、Atcoderでコーディング力を高めているところです。
今回は[競プロ典型90問 010-Score Sum Queries(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_j)の実装にチャレンジしてみました。

# ACのプログラム
“`java:Main.java
import java.util.*;

public class Main
{ //クラス名はMain
public static void main(String[] args) {

//標準入力受け取り準備
Scanner scanner = new Scanner(System.in);

//生徒の人数を受け取る
int N = scanner.nextInt();

//各生徒の点数を格納する配列を定義
int [][] numb

元記事を表示

ABC278A~Eの解答[Java]

## はじめに
今回はEまでコンテスト中に書いた物を載せようと思います。

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

## A – Shift
問題文は[こちら](https://atcoder.jp/contests/abc278/tasks/abc278_a)

$N \gt K$の時は$K+1$番目から$N$番目までの要素を出力後、$K$個$0$を出力しました。
$N \le K$の時は$N$個$0$を出力しました。
“`A.java
class Main{

static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);

public static void main(String[] args){

//N、K、Aの受け取り
int N = System.in.nextInt();
int K = System.in.

元記事を表示

#13 Spring エラーメッセージの表示

# #13 Spring エラーメッセージの表示
今回は数値型の入力欄に文字列型の値を入れてしまった場合などに画面にエラーメッセージを表示させる処理を行います。
文字数の制限などはバリデーションを用いて処理しますが、今回はその前段階の型変換で起きるエラーを処理します。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
前回は画面に表示される固定文字を日本語以外に対応させる処理を行いました。

https://qiita.com/Jackoguro/items/a67de8ab1468598e3f75

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/36f63552-512f-c4b5-6798-a39849d8ceeb.p

元記事を表示

Leetcode 154. Find Minimum in Rotated Sorted Array II

# 154. Find Minimum in Rotated Sorted Array II

https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/description/

## アプローチ
### 1. 二分探索
“`java
class Solution {
public int findMin(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}

int start = 0;
int end = nums.length – 1;

if (nums[start] < nums[end]) { return nums[start]; } while (start < end) {// not putting <= because the arra

元記事を表示

Cookieが原因でhttp://localhost:8080/にアクセス出来ない

# 現状
IntellJでmain/java/in.packagenameディレクトリにあるApplicationファイルを右クリックして実行を行ない
[http://localhost:8080/]でアクセス出来るか確認した所
HTTP Status 400 – Bad Requestと表示されてアクセスが出来ませんでした

IntellJ内では下記のエラーコードが出ていました

“`java
2022-11-16 14:52:43.949 INFO 35198 — [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Request header is too large
“`

# 原因

元記事を表示

#12 画面に表示される文字を多言語化する

# #12 画面に表示される文字を多言語化する[messages.properties]
日本語以外もWeb画面上に表示できるよう設定していきます。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
この記事は#10記事の続きとなります。#10ではmessages.propertiesを用いて画面に表示される文字の共通化を行いました。

https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/2a154793-8a45-27b0-cd32-b184567eaea5.png)

# 成果物
![image.png](http

元記事を表示

Listの編集距離(Java)

編集距離のList版。
Java17で簡単な動作確認しましたが、Java8でも動くと思います。

# 動機
集合(Set)での類似度(Jaccard係数、Dice係数、Simpson係数、など)のような感じで、順番を考慮した類似度を使用したかったため。

# ソースコード

“`java
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class EditDistance {
Map> memo;

public EditDistance() {
memo = new HashMap>();
}

public int distance(List list1, List list2) {
if (list1.isEmpty()) return list2.size

元記事を表示

#11 messages.propertiesの値をコントローラに渡す

# #11 messages.propertiesの値をコントローラに渡す
前回の記事ではmessages.propertiesに記述した内容を各画面に直接入力してましたが、今回はコントローラに渡してから各画面で値を表示します。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
前回の記事

https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c

前々回の記事

https://qiita.com/Jackoguro/items/db35aa456341a484254b

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/67356b8d-2039-81cd-c1a0-b

元記事を表示

org.dbunit.dataset.DataSetException: I/O error について

# テストをしたらエラーが起きた

“`
org.dbunit.dataset.DataSetException: I/O error parsing CSV for URL:
“`

ファイル名が記載してあるところを確認してみると

“`
/bin/test/messages/find/base/given/channels.csv
“`

というのが書いてあったので確認してみるとファイル名が

“`
/bin/test/messages/find/base/given/channles.csv
“`
となっていた…

ディレクトリ名を書くときはタイポがないように気をつけましょう。

元記事を表示

#10 画面メッセージの標準化[messages. properties]

# #10 画面メッセージの標準化[messages. properties]
複数箇所に使用されるメッセージは1つにまとめて管理しておくことで変更が楽になります。今回は固定メッセージをmessages.properties内で管理します。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
前回は画面レイアウトを作成しました。

https://qiita.com/Jackoguro/items/db35aa456341a484254b

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/38798b19-ec94-bf73-ad31-9a5e21b2b326.png)

# 成果物
![image.png](https://

元記事を表示

Javaのenum型(列挙型)

## enum型とは
・定数を一つの型でまとめて管理できるクラス(一応)
・通常のクラスとは異なり、new演算子でオブジェクトは生成できない
・同じような意味を持つ定数をまとめて管理できる

### 定義方法

“`java
public enum Animal {
CAT,
DOG,
FOX,
}
“`
### 使ってみる
今の現場ではenum型の定数を使った時、フィールドに値がセットされる使い方が多い。

“`java
public enum Animal {
CAT(“猫”,1),
DOG(“犬”,2),
FOX(“狐”,3);

private String name;
private int id;

private Animal(String name, int id) {
this.name = name;
this.id = id;
}

public String getName() {
return name;
}

元記事を表示

Javaで何か作ってみる(2022/11/18 Day29)

## 今日やった事
– Udemyの動画教材を少し見た。(**J1-14_クラスとメソッド** まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 内容理解は完璧。
– springそろそろ着手したいな。
→動画教材探しておくか。
## 明日の予定
– 引き続き、動画教材を進めていく。

元記事を表示

#9 Bootstrapを利用して画面の作成[2. デザイン作成][郵便番号から住所を自動入力]

# #9 Bootstrapを利用して画面の作成[2. デザイン作成][郵便番号から住所を自動入力]

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
前回はBootstrapを利用するために環境設定を行いました。
今回は実際にBootstrapを利用してデザインを作成したいと思います。

**環境設定**

https://qiita.com/Jackoguro/items/69153e445a0015ab1e12

**Bootstrapの一部機能まとめ**

https://qiita.com/Jackoguro/items/d539196ffe57205d06bb

**他の方がまとめてくれた記事**

https://qiita.com/nakanishi03/items/c80a16b9b9796c25f890

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
jquery ver 3.6

元記事を表示

OTHERカテゴリの最新記事