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

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

Android Studioのチェック付きListViewでスクロールするとチェックの状態が変わってしまう(解決)

#チェックの状態が変わってしまう

まず、スクロールするほどのチェックを追加したとして、それでスクロールしたらなぜかチェックの状態が変わってしまうのです。

↑のように、アイテム1がチェックされていない状態でスタートして、

↑のように、アイテム1にチェックを入れます。
【Java】標準機能で実装する画像処理(1) – チャネル入れ替え –

#はじめに
Javaの標準機能のみで画像処理を実装してみます。
簡単ではありますが、解説もつけてみたいと思っています。
参考にさせて頂いたのは以下の「画像処理100本ノック!!」です。

https://github.com/yoyoyo-yo/Gasyori100knock

#チャネルとは?
一般的なデジタル画像はRGB(赤、青、緑)の3色から構成されています。
詳しく知りたい方は光の三原色で調べると良いかと思います。

わかりやすく説明すると、カラー画像はRGBの3層から構成されているということです。
この層のことを画像処理ではチャネルと呼びます。

なお、ここでは説明しませんが、アルファチャネルという透明度を表す層も存在します。
その場合、チャネル数は4層となります。

#画素値とは?
デジタル画像は複数の点の集まりで構成されています。
デジカメやスマホのカメラの性能で、何百万画素という言葉を聞いたことがあると思います。
これは、そのカメラで撮った写真は何百万もの点から構成されているという意味です。
画素数(点の数)が多ければ多いほどきれいな写真となります。

一般な写真の画素

元記事を表示

Javaのエラー「エラー: この文字(0x92)は、エンコーディングwindows-31jにマップできません」を直す

#JavaをVScodeで記述し,実行する際のエラーを解消した備忘録(CodeRunnerを利用している方向け)
###エラー: この文字(0x92)は、エンコーディングwindows-31jにマップできません
このような不快なエラーメッセージが出た.
これはどうやらfilename.javaの中に全角文字が記述されている場合発生するようだった.filename.javaはUTF-8で保存されていた.
####UFT-8ではなくShift-Jisで保存すると問題なく同じ動作で実行される(解決策の一つ)
個人的にUFT-8を使いたかったので,どうにかしてそのまま動くようにする.
このとき,使うコーディングに特にこだわりが無い方は,.javaの規定コーディングをShift-Jisに変更することで解決すると思います.
同様のエラーを起こしている人を見つけ対処法が解説されていたのでそのとおりにしてみても消えないが,ターミナルで「javac -encoding UFT-8 filename.java」とすると正常に動作する.
####CodeRunnerが元凶
これらから,コンパイルにエラーが発

元記事を表示

Rubyを用いた逆数和のコーディングテスト

#某プログラミングスクールに通っていた転職生の備忘録

どもお久しぶりです!最近転職活動に注力している転職生です。

今回は、僕が受けたコーディングテストで少し厄介だなと思ったコーディングテストの一部を

紹介していきたいと思います!

では早速いきましょう!!

##指定の値になるまで逆数を足していくプログラム

はてはて、どういったものか。ズバリ、1/1 + 1/2 + 1/3 ・・・

と繰り返していき、足した数がある数になるまで繰り返すというプログラムテストです!

んで、そのある数になったタイミングで、逆数、つまり分数の母数(下の数)がいくらになっているのか

答えを出すといったような問題です!個人的にめんどくさくて、Rubyでの答えがあんまり載ってなかったので

参考になればなと思います!

##プログラムコード(答え)

“`rb
ーーーーー 逆数和を求める ーーーーー
total = 0
num = 0
while t < 15 num += 1 total += (1.0 / (num)) <-----重要ポイント end puts total

元記事を表示

Spring boot × postgres をHerokuへデプロイしてみる。(gradle編)

# はじめに
Herokuを使い始めて、色々とデプロイを試しているかなの忘却録です。
spring-boot(gradle) × postgresのでもアプリを作成し、Herokuへのデプロイ方法を記述しています。

基本的には色々な方が挙げているものと似通っていますが
postgresの設定ファイルをgitignoreするとherokuへpushされず少し困ったのでその解決策なども書いています。

※デモアプリのベースやHerokuの初期設定は、前の記事で上げたものを流用しています。
>[graldeのSpring BootアプリケーションをHerokuへdeployしてみる](https://qiita.com/Takeuchi713/items/01f022cc24db8150763d)

# 環境
– windows 10 Home
– java 11
– spring-boot 2.3.5
– gradle 7.1.1 (gradlew)
– heroku/7.56.1 win32-x64 node-v12.21.0
– spring jpa 2.5.3

# ソース
[

元記事を表示

【Java Silver】 関数型インターフェイス、ラムダ式対策

###目的
現在、Java Silverの取得に向けて勉強中です。関数型インターフェイス、ラムダ式関係の問題の理解に苦しんだので重要ポイントをまとめました。本記事が同じような目標を持った方に少しでも役にたったら幸いです。

###ラムダ式とは

関数型インターフェース:実装が必要なメソッドを一つだけもつインターフェースのこと。

“`java
public interface calcSum{
public abstract int sum(int num1, int num2);
}
“`

ラムダ式:関数型インターフェースを実装する際に使われる式のこと。

通常、上記のCalcSumインターフェイスを実装し、利用する場合、以下のようにインターフェイスを実装し、実装したクラスをインスタンス化して利用します。

“`java

//実行用クラス
public static void main(String []args){
        calcSumImpl sum = new calcSumImpl();
int answer = sum.calcSum(5

元記事を表示

【Java】二次元Map: キーと値のペアを全て取得する

#Mapとは
Mapとは、***キーと値のペアをリスト形式で保持するコレクションのこと***である。
取り出したい値のキーを指定することでその値を取得することができるが、Mapに格納されている全てのキーと値を取り出すにはどうしたらいいのだろうか

#一次元Map: キーと値のペアを全て取得する

“`java:MapSample1.java
package sample;

import java.util.HashMap;
import java.util.Map;

public class MapSample1 {
public static void main(String[] args) {

Map map = new HashMap<>();
map.put(1, “aaa”);
map.put(6, “bbb”);
map.put(3, “ccc”);

for (Map.Entry entry : map.entrySet()) {
System.out.println(

元記事を表示

なぜ拡張for文は普通のfor文より速いのか?

# はじめに
昔書いた記事を眺めていたら、「[JavaでよくつかうCollection実装クラスの仕組みと特性](https://qiita.com/frost_star/items/8a5d711f9090f0e24f51)」の記事が、「[collection型のクラスであるlinkedListに関するランダムアクセスの遅さという課題への取り組み](https://qiita.com/ninoko1995/items/c4e84194f0e48caa6d68)」という記事で参考にされていました。ありがとうございます!
こちらの記事では、LinkedListで作成した処理について、for文と拡張for文で実行時間を比較しており、拡張for文のほうが圧倒的に早いという結果が出ています。
今回は、この拡張for文についてなぜ普通のfor文よりも高速か、というところを解説していきたいと思います。

# 拡張for文とは何ぞや?
そもそも拡張for文とは何か?
コレクション(ListやSetなど)の要素を繰り返し取り出して、何かしらの処理を行うときなどに使用する構文です。
例えば、Listに格

元記事を表示

【Java】BufferedImageの簡単な使い方

#はじめに
Javaにおいて標準機能で画像処理をしようとする場合、BufferedImageを用いることになると思います。
Javaはそもそも画像処理向きの言語ではないですし、OpenCVなどのライブラリを用いた方が簡単に処理できます。
しかし、ここではあえてBufferedImageの基本的な使い方を記しておこうと思います。

#画像の生成
コンストラクタを呼び出すだけです。
実際に動かす際にはwidth(幅)やheight(高さ), type(タイプ)に任意の値を入れてください。
ただし、typeは若干曲者なので、公式ドキュメントに目を通すことをお勧めします。

“`Sample.java
BufferedImage bi = new BufferedImage(width, height, type);
“`

#画像の読み込み
ImageIOクラスを用いることで簡単に実装できます。

“`ImageUtil.java
public static BufferedImage read(String filename) {
try {

元記事を表示

CodeSignal – sudoku2にチャレンジ

コーディングしなさすぎてコーディングを忘れたエンジニアがコーディングを思い出すためにコーティングします。
今回は、アメリカのコーデイング練習サイトCodeSignalの問題「sudoku2」を解いていきます。
サイトによると、この問題はApple、UBERの面接で出されたことがあるようです。

##問題
9×9マスの数独を表す、以下のような2次元配列が与えられます。

“`
grid = [[‘.’, ‘.’, ‘.’, ‘1’, ‘4’, ‘.’, ‘.’, ‘2’, ‘.’],
[‘.’, ‘.’, ‘6’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘.’, ‘1’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[‘.’, ‘6’, ‘7’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘9’],
[‘.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘

元記事を表示

eclipseでJDK Mission Control(jmcプラグインを導入)を利用してみる

#目的
Javaのパフォーマンスチューニングを目的とし、以下ツールを利用して計測したデータを元にボトルネックとなる箇所の分析を行えるようにするため、実施した手順を残しておきます。
今回はeclipseから実施できることを主目的としています。
(eclipse以外での実行、プロファイリングレポートの分析等についてはまた余力を見て記事にできたら、と思います)

– JMC(JDK Mission Control)
– JFR(JDK Flight Recorder)

#記載範囲
本記事ではeclipseで「Mission Control」の使ってみるため、プラグインとして導入してプロファイリングレポートを確認するところまでを記載します。

#前提条件
– エディション:Windows10 Pro
– eclipseバージョン:Version: 2021-06 (4.20.0)
– JDK Mission Control Plug-ins for Eclipse:バージョン8.0.1

#プロファイリングツール
JDK11より以前では、JDK Mission Control(以降JMC)は

元記事を表示

Javaで簡易Webブラウザを作る(JavaFX WebView)

# 簡易Webブラウザを作る
昔の記事だけど、Javaでかなり本格的なWebブラウザを作れる[らしい](https://nompor.com/2018/06/09/post-3893/)ので、私も作ってみる。

# ブラウザを表示させる
参考元のソースで、「[戻る、進むを実装してみる(前のページ、次のページ)](https://nompor.com/2018/06/09/post-3893/#p5)」をまずは写経する。
(その時に、ファル名/パッケージ名は任意に変えている。)

この時に、Mavenを使ってJavaFXを読み込もうとして少し苦労した。(わかってしまえば難しいことではなかった。。。)

“`xml:pom.xml

元記事を表示

Twitter API をJava(twittered)で実行する

# はじめに

TwitterAPIのv2が発表され、キャッチアップのために触ってみることにした。
その際にAPIクライアントを [twittered](https://github.com/redouane59/twittered) を利用するようにした。

# twittered

Java製のTwitter API用のAPIクライアント。
[公式サイト](https://developer.twitter.com/en/docs/twitter-api/tools-and-libraries)でも利用を促している。

試したバージョンは `2.6` 。

v1.x も v2 も両方対応している。
更新頻度については高めですが、日本語の解説などは特に、見つからない。

## 導入方法

Readmeの `Code samples` を参考にした。

## サンプルコード

“`java
@Component
public class Twitter {

private static final String OAUTH_AUTHENTICATE_URL = “https:/

元記事を表示

Java JSP,Servletを使ったポートフォリオ制作

#はじめに
こんにちは! 閲覧頂きありがとうございます。

今回Java、JSP、Servletを使って、ポートフォリオを制作しました。
制作していく中で学んだこと、苦労したこと、ポートフォリオについての説明も兼ねて記事にしました。

まだ実装できていない機能や不完全な箇所もありますが、説明させて頂きます。
#概要
製造業における工数を管理するシステム

概要は以下の二点です。
1.工数管理者の負担を軽減
2.具体的な工数の可視化

工数管理システムを英語訳で、
Product Cost Management System
それぞれの頭文字を取って、”PCMS” というシステムを開発しました。

GitHub URL:https://github.com/nakamurakihiro/PCMS
![PCMS-work_report.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/844098/9322173f-e92a-c5ef-13c1-e41a89d10228.gif)

#制作背景
私は高校卒業

元記事を表示

初めてのJavaプログラミング Java実行環境の準備(JDKのインストール)

初期設定忘れそうなので、備忘録的なやつ

※コンパイラ言語は初めて触るがいろいろ手間がかかりそう……

**JDK(Java Development Kit):開発用に必要なツール群**
javac(コンパイラ)やjavadoc(コードビューア的な奴)を含んでいる

**JRE (Java Runtime Environment):Java実行環境**
インフラ話に絡めるとEMCのUnisphereとか実行するのに動いてる認識
JDKにも含まれている

環境準備の流れ

①JDKのインストール

②システム環境変数(JAVA_HOME)の設定
インストールしたディレクトリを設定。
一般的にC:\Program Files配下

“`

>set JAVA_HOME
JAVA_HOME=C:\Program Files\Java\jdk-16.0.2
“`
→javaを実行する中でプログラムが参照する為に設定が必要。

③Path設定
Pathを通した場合のコンパイル実行
実行ファイルを読み込む為、パスを設定しておく
→実行自体は絶対パスで出

元記事を表示

Java入門[配列]

以下のような処理をしたい時、`String poke`を定義し続けなくてはいけなくて面倒…。

“`csharp:Pokemon.java
public class Pokemon {
public static void main(String[] args){
String poke1 = “ピカチュウ”;
String poke2 = “ヒトカゲ”;
String poke3 = “ゼニガメ”;
String poke4 = “フシギダネ”;

System.out.println(“さぁ、どのポケモンにするんじゃ?”);
System.out.println(poke1);
System.out.println(poke2);
System.out.println(poke3);
System.out.println(poke4);
System.out.println(poke1 + “、君に決めた!”);
}
}

// さぁ、どのポケモンにするんじゃ?
// ピカチュウ
// ヒ

元記事を表示

[Spring Security] 事前認証シナリオ用に提供されたクラスを元に、API キーによる認証認可の実装例を用意・解説した。

#はじめに

##なぜ記事を書いたか?

直近で携わったプロダクトでは、Spring Securityを用いて、**APIキーによる認証・認可** を実装しました。

詳しくは後述しますが、Spring Security を通じた **APIキーによる認証・認可** は、公式から特に実装例等は公開されていないため、

> ![testtest.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287824/9cb317e2-950a-5c3d-74e5-1751fbde5cfa.png)
> 公式ドキュメント: [事前認証シナリオ](https://spring.pleiades.io/spring-security/site/docs/5.0.1.RELEASE/reference/html/preauth.html)より引用

実装する際、`公式ドキュメント` と `Spring Securityのコード` を反復しながら、認証・認可の流れを体系的を理解し、コードに落とし込むという進め方をしました。

元記事を表示

デザインパターン勉強会⑧Abstract Factory

はじめに

ZOOM勉強会の議事録です。
「増補改訂版Java言語で学ぶデザインパターン入門」を読んで、プログラム作成・パターンの理解を行います。
第8回はAbstract Factoryパターンです。

Abstract Factory

抽象的な向上が抽象的な部品を組み合わせて、抽象的な製品をつくります。
役割は以下です。

  • AbstractProduct
  • 抽象的な製品

  • Con

Javaの超基礎(繰り返し処理)

##はじめに
Javaの基本文法のなかの繰り返し処理についてまとめました。よろしくお願いします。

##while文
while文はwhileの後の()の中に条件式を記述し、その条件が成り立つならば、{}の処理を繰り返し続けます。

“`java
int n = 10;

while (i <= 20) System.out.println(i); i++; } ``` 上記の例は「i++」の記述によって一回処理が終わるごとにiに1が足され、20を超えると処理を終えます。 「i++」の記述がないと永遠に処理を行なってしまうので注意です。(無限ループ) ##for文 forの後の()に、変数の定義、条件式、変数の更新をこの順番通りに記述していきます。 また、それぞれの区切りにセミコロンをつけます。 先ほどのwhileと同じ処理をforで書いてみます。 ```java for (int i = 10; i <= 20; i++) { System.out.println(i); } ``` なんだかこっちの方がわかりやすい気がします。 また、繰り返し処理を終了させ

【Ruby】【Java】特定の文字列を数える

 新しく「Java」を勉強するにあたり、これまで「Ruby」を勉強する過程で作っていたプログラムを「Java」で作ってみることにしました。

 今回作るプログラムはこちらです。

“`ruby
def count_hi(str)
puts str.scan(“hi”).length
end

count_hi(‘abc hi ho’)
count_hi(‘ABChi hi’)
count_hi(‘hihi’)
“`

 「Ruby」で作っていた 「hi」という文字列を数えるプログラムです。出力結果は以下のようになります。

“`
1
2
2
“`

##Javaで作ると
 「Java」で作るとこのようになりました。初めに自分で作ったコードは無駄が多かったため、下記の記事を参考にして書き直しました。

 [文字列の中から特定の文字を数える](https://teratail.com/questions/210227)

– メソッドを定義したクラス

“`java
package example;

public class Count {

void countHi