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

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

[初心者向け]Javaで学ぶビット演算とシフト演算

# はじめに
競技プログラミングなどでよく見かけるビット演算、シフト演算ですが、業務上なかなか利用しない、競技プログラミング向けの記事がC++、Ptythonばかりで、Javaでのビット演算、シフト演算を忘れてしまったときに困ったので備忘録として書きます。

Javaで競技プログラミングをしたい方、Javaを利用したプロジェクトでビット演算、シフト演算を利用したくなった方に読んでいただければ嬉しいです。

# ビット演算

### ビット演算子
簡単にビット演算子をおさらいしておきます。
| 記号 | 使用例 | 意味 |
| —- | —- | —- |
|&| a & b | a と b の論理積(ビットAND) |
|||a | b| a と b の論理和(ビットOR) |
|^|a^b| a と b の排他的論理和(ビットXOR) |
|~|~a| a のビット反転(ビットNOT) |

### 具体例(ビット演算)

a = 1100, b = 0101 として具体例を見ていきましょう。
|数式|4桁目|3桁目|2桁目|

元記事を表示

【Java初心者】Wekaによる機械学習 02-コマンドラインでテキスト分類

# さくっと機械学習するために

WekaのUIの使い方を覚えるのが面倒なので、これまで、JavaでWekaのAPIを呼び出すプログラムを書いていました。幸いなことに、Weka Wiki( https://waikato.github.io/weka-wiki/use_weka_in_your_java_code/ )には、参考になるサンプルが丁寧に書かれているので、ふんだんに参考にさせていただきました。

また、世界中のエンジニアが、いろいろなブログで、APIの呼び出し方をまとめてくださっているのも助かりますね。

ただ、手っ取り早く機械学習するには、コマンドラインで答えが出るのがありがたい。もちろんその方法も様々なブログに書かれているけれど、テキスト分類の際の「ストップワード」の指定方法が見つからず苦労しました。

試行錯誤の結果「多分これだろう」という方法が見つかりましたので、自分用のメモのつもりでまとめてみます。

# 元のデータを形態素解析

たとえば迷惑メールの自動分類をやってみるとします。

こちら( https://sleepy-yoshi.hatenablog.com

元記事を表示

Leetcode 455. Assign Cookies

# 455. Assign Cookies

https://leetcode.com/problems/assign-cookies/

## 難易度
### Easy

## アプローチ
### Greedy

“`java
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);

int childrenWant = 0;
int cookieSize = 0;
int result = 0;

for (; childrenWant < g.length && cookieSize < s.length; ) { if (g[childrenWant] <= s[cookieSize]) { childrenWant++; cookieSize+

元記事を表示

Eclipse でJava演習~その前に~

# はじめに
スクールや本、progateで学んだことを実際に自分のPCで演習してみるために、Pleiadesをインストールしました。
そもそも新規プロジェクトを作るのになんだか苦戦したので備忘録としてまとめます。
(Pleiadesの中にEclipseが入っているのねー:sweat_smile:)
(ヘルプの虎の巻は英語なのねー:sweat_smile:)

Eclipse IDE for Java Developers (Ver.2022-09 (4.25.0))を使用

# Javaプロジェクトの作成
先ずはパッケージ・エクスプローラで右クリック。
「新規」から「Javaプロジェクト」を選択。
![スクリーンショット_20221203_153629.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984665/51fb3eac-e95a-0c23-c837-1987f80daeab.png)

プロジェクト名は任意でOK!(ここ適当にして、いつも後で困る)
とくに他に触れず「完了」
![スクリーン

元記事を表示

Leetcode 451. Sort Characters By Frequency

# 451. Sort Characters By Frequency

https://leetcode.com/problems/sort-characters-by-frequency/

## 難易度
### Medium

## アプローチ
### Hashmap

“`java
class Solution {
public String frequencySort(String s) {
HashMap hashMap = new HashMap<>();

for (char c : s.toCharArray()) {
hashMap.put(c, hashMap.getOrDefault(c, 0) + 1);
}

return hashMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue((o1, o2) -> -o1.compar

元記事を表示

Open LibertyのFeatureをプライベートリポジトリからダウンロードする

Javaアプリケーションサーバ [Open Liberty](https://openliberty.io) は、Jakarta EEおよびMicroProfileの機能を使用する際にFeatureと呼ばれるモジュールを使用します。使いたい機能に対応したFeatureのみインストールすることで、比較的小さなアプリケーションサイズになり、起動時間も短くなるメリットがあります。

FeatureはMaven Central Repositoryに保管されたパッケージです。
そのため、企業NWで接続先を制限しているとFeatureをインストールができない状態になる場合があります。

この記事ではMaven Central Repositoryではなく、プライベートリポジトリからFeatureをインストールする方法を記載します。

## 環境情報

* JDK … OpenJDK 17 IBM Semeru Runtime Open Edition
* Open Liberty … 22.0.0.12

## いきなり結論: 環境変数をセットする

FeatureはOpen Lib

元記事を表示

#24 Spring Mybatisを利用したデータベース操作[3. SELECT 1件]

# 24 Spring Mybatisを利用したデータベース操作[3. SELECT 1件]
今回はMybatisを用いてSELECT文に加え、WHERE文を使用して指定したデータ1件のみを取得します。

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

# 前回まで
前回はMybatisを利用してデータを複数件取得しました。

https://qiita.com/Jackoguro/items/526b105d55b62caaaaf7

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
mybatis-spring-boot-starter ver 2.2.2
Model Mapper ver 3.1.0
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46
thymeleaf-layout-dialect ver 3.0.0

2. 依存関係
![

元記事を表示

Javaのディープコピーと「参照」

(本記事ではJava SE 8以上を想定しています)
ディープコピーとは、コピー元/先を変更してもコピー先/元に影響がないコピーのことです。
Javaの参照型をディープコピーするには、コピー元と同じ値を持った新しいオブジェクトを生成する必要があり、少し工夫が必要です。

# 実際のコード
例えばリストをディープコピーしたいなら下記のようになります。もちろん他にいくらでも方法はあります。

“`java:リストをディープコピー
// コピー元
List listA = new ArrayList();
listA.add(“foo”);

// 最もシンプルな例
List listA = new ArrayList(listA);

// NPEを避け、コピー元がnullなら空のリストを代入する
List listB = Optional.ofNullable(listA)
.map(e -> new ArrayList<>(e))
.orElseGet(() -> new ArrayLis

元記事を表示

Javaで何か作ってみる(2022/12/2 Day43)

## 今日やった事
– Springの動画教材を見始めた。
## 参考にしたもの
– [Spring 入門 ~ SpringBoot 2 を使ってお問い合わせアプリとToDoアプリを作る ~](https://www.udemy.com/course/java_spring_beginner/)
– [【超初心者も必見】Javaプログラミングの「オブジェクト指向」が絶対理解できる講座【プロ講師が丁寧解説】](https://www.udemy.com/course/uz-java-obj/)
## 所感
– Springの動画教材を見始めたが、オブジェクト指向を学習した事を前提に進めていくみたいなので、
オブジェクト指向の動画教材を先に進めた方が良いかもしれない。
## 明日の予定
– 引き続き、Springの勉強を進めていく。

元記事を表示

【インクリメント・デクリメント】java

## インクリメント・デクリメントとは

#### 演算子であり、数値型の変数の値を1足したり1減らしたりできるもの
#### ただし、演算子 ‘++’ ‘–‘ を変数の「どこに置くか」で加算減算のタイミングが異なってくるので注意。

要約すると上記の説明になりますが、それだけでは理解に繋がらないのでまずは問題を解いてみましょう。(理解している人は解く必要がありません)

“`java:例題1
public static void main(String[] args) {
int a = 10;
System.out.println(++a + a++ + a + a– + –a);
}
“`
どうでしょうか

すんなり解けた人はもう十分に知識があると思います。

少し悩んだ方は以下の解説を参考してください。


“`java:解答1
56
“`

もう一つ問題

“`java:例題2
public static void main(String[] args) {
int a = 10;
if (a++ > 10 && ++a < 10) {

元記事を表示

Java 基本の基本4

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 演算子(前回の続き)
### 関係演算子
“`java
int num1 = 10;
int num2 = 5;
boolean result;

result = (num1 == num2) //false
result = (num1 != num2) //true
result = (num1 > num2) //true
result = (num1 <= num2) //false ``` ### 論理演算子 ```java int num1 = 10; int num2 = 5; boolean result; //and result = ((num1 < 10) && (num2 < 10)) //false //or result = ((num1 < 10) || (num2 < 10)) //true //notand result = !(num1 < num2) //true ``` # 文字列

元記事を表示

Java 基本の基本3

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 演算子
四則演算や値の比較などの演算を行うための記号。

### 算術演算子
“`java
int num1 = 20;
int num2 = 5;

num1 + num2 //加算
//演算結果 25

num1 – num2 //減算
//演算結果 15

num1 * num2 //積算
//演算結果 100

num1 / num2 //除算
//演算結果 4

num1 % num2 //余剰
//演算結果 0
“`

### 文字列結合演算子
“`java
String firstName = “Toro”;
String lastnName = “Yamada “;

String fullName = lastName + firstName;
//演算結果 ”Yamada Toro”
“`
### 代入演算子
“`java
int num1 = 10;
int num2 = 5;

num1 = n

元記事を表示

Java 基本の基本2

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 基本データ型
変数に格納する中身によって、データ型を指定しなければならない。
– 整数型
byte, short, int, long
intが一般的

– 浮動小数型
float, double
doubleが一般的

– 文字型
char
※Stringは文字列。基本データ型ではない。よって最初が大文字。

– 真偽値
boolean
(true / false)を格納。二者択一の情報。

# データ型
## 参照型
(文字列型、配列、列挙型、クラスインスタンスなど)
基本データ型は変数に値そのもののデータを格納しているが、参照型は変数に格納するデータの位置情報(先頭アドレス)を保存している。

例)String name1 = “yamada”
String name2 = “yamada”
それぞれの”yamada”は別のもの

– 文字列型
【String 変数名 = “文字列”】
文字列を格納できる。
int

元記事を表示

Java 基本の基本から

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 1,基本構成
– ブロック
{ から }まで囲まれている部分。
– クラス
コンピュータに対して行わせようとしていることの設計図。メソッドや変数といって部品で構成されている。

– メソッド
コンピュータに対しての指示や命令の本体。いくつかの処理の組み合わせによって構成されている。
“`java
pubulic class HelloWorld {
********************内側がメソッド***外側がクラス***************
public static void main (String[] args) {
System.out.println(“Hello World!”); //処理の最後には”;”をつける。
********************内側がメソッド***外側がクラス***************
}

“`
メソッドの中にある処理が上から順に実行されてい

元記事を表示

JavaでWord文書内のハイパーリンクをすべて削除し、他の書式を維持する方法

Word文書内のハイパーリンクは、Webページやファイル、メールボックスなどに移動したり、文書の特定の部分に移動したりすることができる便利なツールです。ハイパーリンク自体はとても便利なものですが、特にインターネットからダウンロードしたりコピーしたものなど、不要なハイパーリンクを大量に含む文書を入手することがあります。これをひとつひとつ手作業で削除するのは時間の無駄です。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使って、**Word文書からすべてのハイパーリンクをすばやく削除し**、**その他の書式を維持する方法**について説明します。

## 【依存関係の追加】
この方法は、無料のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。

### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリ

元記事を表示

WSL(Ubuntu)でのJavaバージョンの切り替え方法

開発で結構頻繁にJavaのバージョンを切り替えるのに、
いつも忘れて毎回検索してしまうのでまとめておきます。

# alternativesを使う方法

前提として以下のような感じでaptで複数のJDKがインストールされているとします。
※普通同時に複数バージョンをインストールしたりはしないでしょうが・・・

“`bash
$ sudo apt install openjdk-11-jdk openjdk-17-jdk
“`

### 切り替え

切り替える場合は以下のコマンドを実行します。

“`bash
$ sudo update-alternatives –config java
“`
するとこんなメニューが出てくるので
“`
Selection Path Priority Status
————————————————————
0 /usr/lib/jvm/jav

元記事を表示

Spring Securityのログインでapplicaiton/jsonでデータが送れない

Spring SecurityのログインAPIにPostmanでPostリクエストを送ってもデータが受け取れないんやがって人向けの記事

### どんな状況か
![スクリーンショット (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951570/7e652b1f-8266-2e50-9116-4fe540899bc8.png)
– HeaderにContent-Type application/jsonを設定
– jsonの形でデータ送信
– ステータスコ―ド403

![スクリーンショット (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951570/80c2f816-9620-f193-91c5-9c4571bf0f8d.png)
– logには値がnull
– NONE_PROVIDEDとでている(何かわかっていない)

### 結論
Content-Typeをx-www-form-urlencod

元記事を表示

Processingでシンプルなものを作ってみた(第0001弾)

ーーー シンプルな信号を描画してみた ーーー

小さい頃、ピコを使って信号の絵を描いていたことを思い出し、
Processingでやってみた。

工夫したところ
・ウィンドウサイズに応じて対応する
・図形描画に関しては自作関数を作成してその中にコードを書いた

(1) ウィンドウサイズ:640×480[px]
![スクリーンショット 2022-12-02 12.35.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3003934/8aa2338c-49cb-ef66-eaac-ebb804af1be9.png)

(2) ウィンドウサイズ:160×120[px]
![スクリーンショット 2022-12-02 12.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3003934/a39605c0-d9e8-ec45-8a4a-6d2a0d20e401.png)

“`image.pde
int sizeH

元記事を表示

JavaとgRPCで2Dバーチャルオフィスっぽい何かを作る ①概要編

この記事は [TLB Enjoy Developers Advent Calendar 2022](https://qiita.com/advent-calendar/2022/tlb-enjoy) 、2日目の記事です。

# これは何?
リモートワークの普及により、オンラインでのコミュニケーション促進を目的とした2Dバーチャルオフィスツールが人気なようです。具体的には、[Gather](https://www.gather.town/)や[MetaLife](https://metalife.co.jp/)などです。Youtubeでチュートリアル動画を観たのですが、一言で感想を言えば **「楽しそう!!」** 。2Dドット絵がかつて遊んだゲームを彷彿とさせ、えもいわれぬ懐かしみを感じさせます。

– **2Dバーチャルオフィスツールっぽいものを自分で作ってみたい!**
– **ネットーワーク経由で同期をする学習にもなる!**

ということで、学習がてら2Dバーチャルオフィスツールぽいものを制作しようと思い立ちました。

# 実現したい事
以下のような機能が実現できればそれっぽいものが

元記事を表示

KotlinでSpock入門[Data Driven Testを学んでデータ駆動テストを使い倒す]

この記事は筆者のソロ [Advent Calender 2022](https://qiita.com/advent-calendar/2022/panda) 3日目の記事です。

KotlinプロジェクトにテスティングフレームワークであるSpockを導入するための方法を紹介していきます。

前回までの基礎編はこちら
[KotlinでSpock入門[基礎編]](https://qiita.com/JY8752/private/5106a268de00a0daa4db)
[KotlinでSpock入門[基礎編2]](https://qiita.com/JY8752/private/c4f7cb585bb91236b975)

今回はData Driven Testingについて記載していきます!

# Data Driven Testing is 何??
入力と出力のパターンを列挙してテストする方法のことという理解。JUnitであればParameterizedTest, KotestであればData Driven Testing, GoであればTableDrivenTestと呼ばれ方が微

元記事を表示

OTHERカテゴリの最新記事