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

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

ランダムフォレストアルゴリズムによる購買習慣の予測

ランダムフォレストは分類や回帰の問題を解決するために用いられる教師ありの機械学習アルゴリズムです。このアルゴリズムは、複雑な問題を解決し、モデルの性能を向上させるために、多くの分類器を組み合わせるプロセスである*アンサンブル学習*の概念を使用しています。

ランダムフォレスト分類器は、特定のデータセットの様々なサブセットに対する多数の決定木を含み、その平均値を用いてデータセットの予測精度を向上させます。ランダムフォレストは1つの決定木に依存せず、各決定木からの予測を取り込み、予測の多数決に基づいて最終的な予測を行います。

フォレスト内のフォレストの数が多いほど、アルゴリズムの精度が向上し、オーバーフィッティングの可能性が低くなります。今回はJavaのランダムフォレストアルゴリズムとGridDBを使って、ユーザーの性別、年齢、給与からSUVを購入するかどうかを予測します。

## GridDBにデータを格納する

使用するデータは、性別、年齢、給与、SUVを購入したかどうかです。このデータは、”suv.csv “というCSVファイルに格納されています。このデータをGridDBに格納し、

元記事を表示

ABC247A~Dの解答[Java]

## はじめに
解答は提出そのままではなく書き直せる部分を書き直したものです。

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

## A – Move Right
問題文は[こちら](https://atcoder.jp/contests/abc247/tasks/abc247_a)

問題文は「先頭三文字の先頭に0を付けて出力せよ」と同義なのでまんま実装してやりましょう。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//文字の受け取り
String str = sc.nextLine();
//文字を切り出して出力
System.out.println(“0″+str.substring(0,3));
}
}
“`

特に説明はいらないですかね。ちなみにこのコードで135msです。多分BufferedReaderクラスとか有志のFastScannerクラスを

元記事を表示

for文の応用【谷型グラフ(累乗)】






実行結果

![スクリーンショット 2022-06-16 18.40.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2133160/3ce65cf3-45f1-f4e4-60cb-c4b46c8dc0cb.png)

コード

メソッドの呼び出し元

“`java
public class Graph2 {
public static void main(String[] args) {
for(int i = -8;i <= 8;i++) { Graph1.printGraph(i*i); } } } ```

Graph2クラスのmainメソッドで、Graph1クラスのprintGraphメソッドを呼び出し、16回ループさせます。実引数は、累乗分「◯」を出力させるため、「i * i」と指定。

元記事を表示

ここが嫌だよPDFBox!!(複数行出力とか)

みなさん!無償で使えるPDF作成ライブラリとして有名なんですが [PDFBox](https://pdfbox.apache.org/ “PDFBox”) ってご存知でしょうか?

ただいざ使ってみるともやっとするポイントがちらほら…
まぁニッチなニーズなので仕方ない側面もあるんですけどね…ッ!!

私がPDFBoxを使ってみて困った事や嫌だった事とかを以下にまとめたので参考にしてくださいな!

##### 複数行対応はしたが・・・・?

参考リンク:[PDFBox 2.0.21は複数行テキストフィールドの自動フォントサイズに対応](https://qiita.com/oohira/items/13de6968d5240ac16ae2 “参考記事”)

上記の通りPDFBoxは複数行の出力にも自動フォントサイズにも対応をしています。

がしかし!!!

以下のコードの通り、**デフォルトフォントサイズ12ptという所を変更する事は出来ません。**
https://github.com/apache/pdfbox/blob/2.0.26/pdfbox/src/main/java/

元記事を表示

二重for文②【九九表】





実行結果

![スクリーンショット 2022-06-16 5.43.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2133160/df839c2a-e9d0-56e0-fe91-d04e317e7404.png)

コード

“`java
public class Rensyu0609 {
public static void main(String[] args) {
for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { System.out.printf("%d*%d=%-4d",i,j,i*j); //Sysyem.out.printf(書式, 引数1, 引数2, ....) }

元記事を表示

二重for文①【山型グラフ(累乗)】





実行結果

![スクリーンショット 2022-06-15 21.19.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2133160/a1a45aa0-6b8e-b9fa-e1e0-8c6ea61abb42.png)

コード①:二重for文を2つ使う場合

“`java
public class Rensyu0610a {
public static void main(String[] args) {
for(int i = 0;i < 10;i++) {// System.out.print(i + ":"); for(int j = 0;j < i*i;j++) { System.out.print("◯"); } System .out .println("(" + i*i + ")");

元記事を表示

JavaからKotlinに変えてみる

## はじめに

🙆‍♂️「どうも運動通信社で働くAndroidエンジニアの明田です!
弊社では2021年11月頃からJavaで書かれたのAndroidプロジェクトをKotlinにゴリゴリ書き換えていっています!
Koltin化一緒に進めたいそこのあなた、この世界をKotlinにする運動にこぞってご参加してください!」

※ Kotlin化に伴い得た知見や感想などを書いている記事になります。是非参考にしてください

## Kotlinとは

2017年のGoogleがKotlinを正式にAndroidの開発言語として発表されました。
KotlinはJVM(Java仮装マシン)をサポートしているため、Javaが動くところではどこでもKotlinが動きます。

さらに、Javaが抱えている課題を解消しているのもKotlin化するメリットになります。
その導入の簡単さと、Javaとの親和性、既存プロジェクトへの導入リスクの低さが多くの企業のAndroid開発に採用されている要因ともなっています。

↓Android以外にサーバーサイドとしてKoltinを導入している企業

https://q

元記事を表示

OCI DevOps を使った Java アプリケーションのビルドを高速化する

# はじめに

OCI DevOps を使った Java アプリケーションのビルド(コンテナイメージのビルド)を高速化する方法を紹介します。

# ポイント

ポイントは、

– BuildKit(Docker Buildx) を使う
– 生成されたキャッシュを Object Storage に保存し、2 回目以降のビルド時にそれを活用する

です。それを実現するための build_spec.yaml と Dockerfile を見てみましょう。

“`build_spec.yaml
version: 0.1
component: build
timeoutInSeconds: 10000
shell: bash
env:
variables:
BUILD_CACHE_OS_BUCKET_NAME: build-cache
BUILD_CACHE_OS_FILE_NAME: k8s-helidon-app-cache.zip
exportedVariables:
– TAG

steps:
– type: Command
name: “Ex

元記事を表示

【Java】StreamAPIでzip関数を自作する

# zip関数とは
2つ以上の反復可能なオブジェクト(リスト等)を引数に受け取り、各オブジェクトの要素を前から順にまとめたリストを作成する関数です。
例えば`[1, 2, 3]`と`[‘a’, ‘b’, ‘c’]`の2つのリストをzip関数に渡すと`[(1, ‘a’), (2, ‘b’), (3, ‘c’)]`というリストが返されます。
ここで、`()`はタプル(不変リストのようなもの)を表します。

Python等ではzip関数が標準機能として提供されていますが、Javaにはzip関数が存在しません。
よってJavaでzip関数を使用したい場合は外部ライブラリを使用するか、自分で実装する必要があります。

# 本記事の目的
Javaの標準ライブラリのみを用いた簡易的なzip関数の実装方法をご紹介します。

# 結論
Javaにはタプルがないため、`List.of`で取得できる不変リストで代用します。
## zip関数
“`java:DoZip.java
package sample;

import java.util.Collections;
import java.util.

元記事を表示

[初心者] Javaソースコードの例文とその意味

“`java
public class Sample {
public static void main(String[] args) { //main + Tabキーで作成
System.out.println(“Hello java”);
int i;
i = 5;
System.out.println(i);
}
}
“`

各行の意味は

 1行目は、SampleというClass名を持っているClassブロック
   Class名(1)Class名は名詞で作成
       (2)複数の動詞を合わせる場合、各単語の最初は大文字(CamelCase)

 2行目は、mainというMethod名を持っているMethodブロック
 Classブロックの中には複数ののMethodブロックが存在できる
   メソッド名(1)メソッド名は動詞
       (2)複数の単語を合わせる場合、各単語の最初は大文字だが、名前の一番前は小文字

元記事を表示

【java】文字変換に関するコード一覧

# 概要
文章変換ツールを作成する中で、
Javaの文字変換に関するコードを調べたので備忘録として整理しておく。

# 環境
・Java 11

# 文字の削除

## 全角スペースを削除する
“`
//変換をしたい文字列
String beforeConvertWord = “aaa aaa aaa”;

//全角スペースを削除
String value = beforeConvertWord.replaceAll(“ ”, “”);

//変換結果を出力
System.out.println(value);
“`

実行結果
“`
aaaaaaaaa
“`

## 半角スペースを削除する
“`
//変換をしたい文字列
String beforeConvertWord = “aaa aaa aaa”;

//半角スペースを削除
String value = beforeConvertWord.replaceAll(” “, “”);

//変換結果を出力
System.out.println(value);
“`

実行結果
“`
aaaaaaaaa
“`

## タ

元記事を表示

【Java】SpringでInterceptorを使って特定のセッション情報がないときのリダイレクトを行う

# はじめに
本記事ではSpringで`Interceptor`を使用し、特定のセッション情報が存在しない場合のトップページへのリダイレクト処理を行う方法を紹介します。

# 経緯
Spring Web MVCで各`Contorller`がセッション情報を利用した処理を行う場合、適切なnullチェックを行わないとすぐに`NullPointerException`が吐かれます。
そこで、`Interceptor`を使った前処理でセッション情報がnullのパターンを弾き、適当なページにリダイレクトする方法を調べました。

# 結論
以下の2つのクラスを作成すればOKです。
“`java:Interceptorによる処理を実装するクラス
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

public class SessionCheck

元記事を表示

WindowsのJDKでwildflyのwebアプリにアクセスできないとき

執筆(2022/06/14)時点で日本語の情報が少ないため、メモしておきます。

#### 問題点
Windows上でOpenJDK 11.0.15やOracle Java 11.0.15などで、WildflyやJBossで、
ブラウザでWebアプリにアクセスすると、以下のエラーが出ました。

エラーの内容は↓です。
“`sh
11:21:05,200 ERROR [io.undertow.request] (default task-1) UT005071: Undertow request failed HttpServerExchange{ GET /hoge}: java.io.IOError: java.io.FileNotFoundException: Invalid file path

UT005071: Undertow request failed HttpServerExchange{ GET /mta-ui}: java.lang.NoClassDefFoundError: Could not initialize class org.xnio.ch

元記事を表示

Mr.Nam 先生の講義要約 Chapter2(進行中)

Chapter 02. Spring MVC
第1回 遠隔プログラムの実行
他のコンピュータにあるプログラムを実行(ローカルプログラム:私のコンピュータ)

ブラウザと遠隔プログラム(WAS)がなければ実行できない。
外部からブラウザでサーバーにあるプログラムを実行するには、以下の2つの作業をしなければならない。

1.プログラム登録(Controller)
2.URLとプログラムを接続させる
アドレスバーにURLを入力すると遠隔プログラムが実行されるように(RequestMapping)
———————————————————————————————————————–
第2回 AWSに配布する
インスタンス:仮想コンピュータ
EC2 : AWSが提供するクラウドサーバー
ログイン>EC2>インスタンス開始>プリティアで提供するインスタンス選択
——————————————-

元記事を表示

とーふのアウトプットブログ (1)

# とーふ、技術ブログ始めるってよ
初めまして、とーふという物です。
プログラミングスクールを卒業して就職したのはいいものの焦って就職を決めてしまい
家電量販・コールセンターSESに入り、ヒイヒイ言ってます。
「流石にこのままではまずい、色々と持たない。心が壊れる」と察して転職活動を開始。
無事に転職が決まって、やっと開発ができるSESに入社が決まった者です。

スクールの頃からRubyをメインに触っていたのですが、就職に伴ってこの度Javaを勉強することになったので
どうせならと思い、このように記事を残そうと思った次第でございます。

不慣れな記事となりますが、よろしくお願いします。

元記事を表示

Java Genericsの型推論とオーバーロード

比較的厳格な型付け言語として有名なJavaにおいて、実行時に型の取り扱いが曖昧になりシステムエラーが発生する事象がありました。
WEB上にそれほどナレッジがなく、事象としても興味深かったので、整理してみました。

なお、当記事の前提は以下となります。
– JavaのGenericsやオーバーロードなど、基本的な言語仕様の解説はいたしません。
– 当記事に掲載している実験用ソースコード(コードブロックにファイル名を明記しているコード)は、全てそのブロック単体でコンパイルと実行ができるようになっているので、興味のある方はぜひご自身のローカルで試してみてください。

# 環境

Oracle jdk1.8系
“`
% java -version
java version “1.8.0_281”
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
“`

# 事象

下記の様な実装にて、ClassCas

元記事を表示

Android Studioでplay-services-adsをv21にしたら「Duplicate class com.google.android.gms.internal.measurement.zz〇〇」で競合エラーになった

# 概要
Android Studioで使用しているライブラリを最新にしていったら、「Duplicate class com.google.android.gms.internal.measurement.zz〇〇」の競合エラーが大量に出てきてビルドが通らない。
そこで、原因を調べて、解消してみた忘備録。

# 競合が起きるまで
下記のように、Android Studioでbuild.gradle(アプリ、モジュール)を開くと、ライブラリに更新があるものは、色が変わり、ライブラリにカーソルを持っていくと簡単に最新版へ変更することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222251/e85b931d-b7b2-65ba-afd9-a0a907fa07d1.png)

とりあえず、「更新できるよ」と言われたものは全て更新した状態にしました。
(play-services-locationとplay-services-mapsが重複してますが、これを書きながら気づきました。

元記事を表示

ConcurrentModificationExceptionが起こる仕組み

すごく渋い記事なんですが、どうしてConcurrentModificationExceptionがどのように起こるのか簡単にメモしておきます。

ArrayListなどが継承しているAbstractListクラスには`protected transient int modCount = 0;` というフィールドがあります。

ArrayListのremove()などにはこのフィールドをインクリメントする処理が書いてあります。

“`java
public E remove(int index) {

modCount++;
// 削除の処理

}
“`

またArrayListのforEach()などのメソッドを見ると以下のように最初にmodCountをローカルの変数に保存して、それがループごとに変わっていないかをチェックし、変わっていたらConcurrentModificationExceptionを投げるだけです。

“`java
@Override
public void forEach(Consumer

元記事を表示

[2022年]オライリーおすすめ書籍1(参考書)

オライリーのおすすめ書籍を紹介します。
プログラミングやIT系の勉強するときはKindleや電子書籍で勉強するのがおすすめです。
***
[動かして学ぶAI・機械学習の基礎[Amazon]](https://amzn.to/3aFGgQf)
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/f1228803-344e-95ef-ef8e-c7c837f033ca.jpeg)
– 第Ⅰ部 モデルの構築
– 1章 TensorFlowの概要
– 2章 コンピュータビジョン入門
– 3章 基礎からの発展: 画像の特徴量検出
– 4章 TensorFlow Datasetsを使った公開データセットの利用
– 5章 自然言語処理入門
– 6章 埋め込みによる感情のプログラム化
– 7章 自然言語処理のための回帰型ニューラルネットワーク
– 8章 TensorFlowによるテキストの生成
– 9章 シーケンスと時系列データの理解
– 10章 シーケンスを予

元記事を表示

JavaGoldSE8に受かったので(中編)

# まず初めに
3部構成で読んでいただきたい。
理由としては、ただ単にスクロールが面倒なのと記事ごとで書いている内容を差別化させたいからだ。

**ソースコードは自分の環境にてコンパイルをかけていますが、万が一、誤りなどある場合はご指摘ください。**

[前編(本や受験に際しての注意事項)へ](https://qiita.com/Zombie_PG/items/7f1aec26d32dd154762b)
[後編(おそらく筆者の間違えた問題)へ]()
※後編は20200612時点では完成していません。これから記載する予定です。

本章では以下を主要トピックとして扱う
・試験に際して、覚えといたほうがいいこと

# 【試験に際して、覚えといたほうがいいこと】

## ①ポリモフィズム系

### instanceof演算子について
instanceof演算子は、インスタンス化された変数の参照範囲がどこまでかを見ているという認識。
参照範囲として見れている場合は、`true`が返る。逆に参照範囲ではないが、オブジェクトのサブタイプ(サブクラス)に当たる場合はfalseを返す。
要はダウンキ

元記事を表示

OTHERカテゴリの最新記事