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

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

【Java】Stream APIの使い方

## はじめに
先輩エンジニアの方から学んだ方がいいとアドバイスをもらいStream APIについてキャッチアップをしました。
なんだか難しく聞こえますが、使ってみると意外と簡単なので忘備録を兼ねまとめています。

## Stream APIとは?

Java8で導入された配列やCollectionなどを扱い、値の集計やデータを使った処理などができる便利なAPIのこと。

これだけではあまりイメージが湧かないので、**for文で記述していた処理をシンプルに記述できる便利機能**と覚えておけばOK!

## for文とStream APIの比較

今回は「**1から5までの整数の中から偶数を取得する処理**」をfor文とStream APIを利用して実装する。

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

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

// 1から5までの整数
List numLis

元記事を表示

Java系バージョン対応表

JRE仕様とクラス形式のバージョン対応表

| JRE | class |
|—-:|——:|
| 1.6 | 50.0 |
| 1.7 | 51.0 |
| 1.8 | 52.0 |
| 9 | 53.0 |
| 10 | 54.0 |
| 11 | 55.0 |
| 12 | 56.0 |
| 13 | 57.0 |
| 14 | 58.0 |
| 15 | 59.0 |
| 16 | 60.0 |
| 17 | 61.0 |

Apache TomcatとServletのバージョン対応表

| Tomcat | Servlet |
|——-:|——–:|
| 6.x | 2.5 |
| 7.x | 3.0 |
| 8.x | 3.1 |
| 9.x | 4.0 |
| 10.x | 5.0 |

元記事を表示

初心者でもわかる関数型インターフェース(Function編)

##はじめに
関数型インターフェースのFunctionインタフェースをご存知でしょうか。Functionインターフェースを使用すると処理をキュッとまとめることができます。これによって読みやすいコードにするこどができます。そんなFuncitionインターフェースとおまけにBiFunctionインターフェースについて解説していきます。

##Functionインターフェースとは
引数を1つ受け取ってその引数を使った処理返す関数型インターフェースです。例えば、引数の5を受け取ったとしましょう。その5に1を足す処理を返すというイメージです。Functionは抽象メソッドであるapplyメソッドを持っています。では、サンプルコードを通して具体的に説明していきます。

:::note info
Functionはジェネリックスの型を2つ受け取ります。
具体的には1つ目の型はappyメソッドの引数の型、2つ目はapplyメソッドの戻り値の型として受け取ります。
:::

##どうやって使うの?
以下のサンプルコードは引数に半径を受け取り、その引数を利用して円の面積を求める処理をしています。Funct

元記事を表示

Java 初心者でもわかる関数型インタフェイス(Predicate編)

#はじめに
関数型インターフェースの1つPredicatetインターフェースをご存知でしょうか。
predicateインターフェースとラムダ式を組み合わせれば、複雑な条件をシンプルに実装できてしまいます。そんなPredicateインターフェースとおまけにBiPredicateインターフェースを解説していきます。
##Predicatetとは?
Predicateを日本語に訳すと「断定する」という意味になります。言葉の通り、引数を通して何らかの判断をする処理を定義するためのものです。例えば、戻り値がboolean型の処理をラムダ式で変数に代入して簡単に呼び出せるようにできます。Predicateはtestメソッドを持っています。そのメソッドは引数を1つ受け取り、その引数を使って、その結果をboolean型で戻します。サンプルコードを通して使い方を説明していきます。

##どうやって使うの?
サンプルコードでは理想の男性を絞るためにMainクラスでif文を使って絞り込んでいきます。

“`Man.java
public class Man {
private int hight;
p

元記事を表示

Javaを使用してPDFのブックマークを展開または折りたたむ方法

PDFのブックマーク機能は、指定された読み取り位置をすばやく見つけることができます。 複数のブックマークに対しては、人々は自分の好みに応じてそれを展開してまたは折りたたむことができます。この記事では、Javaプログラムコードを使用してPDFブックマークを展開または折りたたむ方法を紹介します。

##プログラム環境:

Spire.Pdf.jar(無料バージョン3.9.0バージョン)
JDK1.8.0(バージョン1.6.0以降を使用可能)
IDEA

###JARファイルのインポート:
jarパッケージを手動で[ダウンロード](https://www.e-iceblue.com/Download/download-pdf-for-net-now.html)してインポートします。libフォルダーにあるSpire.Pdf.jarファイルをダウンロードして解凍し、Javaプログラムへの参照を追加します。
jarのインポートは以下の図に示すように:
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2787

元記事を表示

Java入門#2_演算子と条件分岐

#演算子
演算子とは、加減乗除をする文字のことです。
c#やPythonでは`+,-,*,/`などがありました。

***javaもC系統とほぼ同じ記号を使います***

忘れてしまっていたら以下のページで確認して見てください。

演算子

以下、上記はだいたい頭に入っているものとして進めます。

試しに、二つの数を入力してその数の和を出力するプログラムを書いて見ます。

“`java
import java.io.*;

class cal{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//お約束

//二つの数字を文字として入力
System.out.println(“a=?”);
String str1 = br.readLine();

元記事を表示

extendsはなぜ邪悪か – 具象基底クラスをインターフェイスに変えることでコードを改善する

## 翻訳にあたり

この記事はアレン・ホルブ(Allen Holub)[^1]さんの[Why extends is evil](https://www.infoworld.com/article/2073649/why-extends-is-evil.html)の翻訳です。古い記事ですが日本語訳が存在しないため翻訳いたしました。アレンさんにはTwitterメッセージ越しに快諾いただきました。

[^1]: 日本語圏における情報が少なかったため、[氏が講師を務めるアメリカO’reilly社の講座](http://shop.oreilly.com/product/0636920043942.do)で発音を確認したところ、「u」がほとんど発音されておらず(聴感上は「Holb」)、それに倣った。早口なせいか書き起こしが「Alan Holt(日本語字幕も当然アランホルト)」になっていたのはご愛敬。

Javaに総称型が導入される前の記事ですが、この記事の要点は現在でも通用する内容で、いい意味での古典だと思います。C#など、Java同様にインターフェイス(もしくはプロトコル、トレイト)を持つ言語

元記事を表示

Javaのインクリメント・デクリメントについてまとめてみた

Javaのインクリメントとデクリメントについて学習したのでまとめてみたいと思います。

# Javaのインクリメントとデクリメントの書き方とそれぞれについて

| |処理内容 |構文 |
|—|—|—|
|インクリメント |一つ加算される |変数++、もしくは、++変数 |
|デクリメント |一つ減産される |変数–、もしくは、–変数 |

インクリメントに関しては見たことがあると思います。

“`main.java
public class main {
public static void main (String[] args) {
for (int increment = 0; increment < 2; increment++){ System.out.println("increment=" + increment); } } } ``` このようにJavaでfor文を使ったことがある人であれば、変数++でインクリメントしているところを見たことがあると思います。 ただ、インクリメントもデクリメントに

元記事を表示

初心者でもわかるBuilderパターン Builderパターンでカレーを作くろう!!

##はじめに
皆さんはBuilderパターンをご存知でしょうか。
Builderパターンには色々な種類ありますが、今回はGoFのBuilderパターンについて解説していきます。

##GoFのBuilderパターンとは
Builder パターン(ビルダー・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義されたデザインパターンの1つです。 オブジェクトの生成過程を抽象化することによって、動的なオブジェクトの生成を可能にします。(引用 wikipedia)

分かりやすく言うなら、猫というクラスがあるとします。猫の抽象的な概念は動物ですよね。
この場合、猫クラスから犬クラスに変わったとしても対応できますよね。
どうでしょうか?イメージが湧いたでしょうか。サンプルコード通してどんなものか具体的に説明していきます。

##クラス図
![スクリーンショット 2022-02-15 20.51.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526916/00b09582-8

元記事を表示

コンピュータとオセロ対戦43 ~目的関数~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/9c3e208d77373d0683e3)

# 今回の目標
# ここから本編
## 修正点
パッケージ名out_functionをactivationFunctionに変更しました。
また、Matrixクラスに以下のメソッドを追加しました。

“`java
/**
* Return absolute value of this matrix.
* @param in Matrix.
* @return Absolute value of this matrx.
*/
public void abs(){
for (int i = 0; i < this.row; i++){ for (int j = 0; j < this.col; j++){ this.matrix[

元記事を表示

フォームバリデーションのカスタマイズ【Spring Boot】

#概要#
フォームバリデーションをする際、Bean Validation APIの標準の制約(@NotBlanckなど)を使うほかに、独自のチェックをする制約を利用したくなる場面があると思います。そのような場合、これまではコントローラで実装してきましたが、特定のFormオブジェクトのチェック処理を集約したバリデータを利用すると、コントローラからチェック処理を切り離すことができることが分かりました。

#前提#
社内システムのの管理者登録を実装する場合を想定します。

チェック項目は以下の通りとします。
・空欄ではないこと(@NotBlanck / @NotNull)
・従業員テーブルに存在する社員であること(存在チェック)
・パスワードと確認用パスワードが一致していること(相関チェック)

“`register.html




管理者登録

元記事を表示

Java基礎(命令実行文)

##Javaの命令実行文

###画面に文字を表示する
“`java
System.out.println(“おはよう”);
“`
“`java:出力
おはよう
“`

###文字を改行せずに表示
“`java
System.out.print(“私の名前は”);
System.out.print(“山田です”)
“`
“`Java:出力
私の名前は山田です
“`

###二つの値の大きい方を代入する
“`java
int a = 3
int b = 5
int m = Math.max(a,b);
//m に 5 が代入される
“`

###文字列を数値に変換
“`java
String age = “30”;
int n = Integer.parseInt(age);
//変数nが文字列から整数に変換
“`

###乱数を生み出して代入
“`java
int a = new java.util.Random().nextInt(30);
//aには0〜29の値が代入
“`

###キーボードから1行の入力を受け取る
“`java
String s =

元記事を表示

JavaのWebアプリをHerokuでデプロイする方法

JavaのWebアプリをHerokuでデプロイする方法を自分用にメモします。

こちらの記事を参考にしました。
https://phoeducation.work/entry/2021/01/30/143607

#Herokuインストール

まずはHerokuにアカウント登録してください。URL:https://jp.heroku.com/home

次にEclipseで作ったプロジェクトを右クリック → 構成 → Mavenプロジェクトへ変換
でプロジェクトをMevanプロジェクトにします。pom.xmlが生成されればOKです。

ターミナルを開き、Heroku CLIをインストール

“`
$ brew install heroku/brew/heroku
“`

デプロイツールをインストール

“`
$ heroku plugins:install heroku-cli-deploy
“`

Herokuにログイン

“`
$ heroku login -i
“`

以下のメッセージが表示されるとログイン成功です。

“`
Logged in as Herokuに

元記事を表示

Javaを使用してPowerPointで散布図を作成する方法

散布図は、名前の示すように、散布点で構成されるグラフであり、これらの点が配置される場所は、X値とY値によって決まります。ゆえにXY散布図とも呼ばれます。この記事では、Javaコードの例を使用してPowerPointスライドに散布図を作成する方法を示します。

##チャートを作成する前に
PowerPointを操作するためのjarパッケージ**[Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)**をJavaプログラムにインポートする必要があります。インポートするには、次の方法を参照してください。

jarパッケージを手動でインポートします。jarパッケージをローカルにダウンロードして解凍し、libフォルダーでjarファイルを見つける必要があります。次に、以下の手順に従ってインポートします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2787

元記事を表示

クラス図を作成できない方でも大丈夫 eclipceでクラス図を自動生成してみた

##はじめに
ある時、Buildingパターンのクラス図を作ろうとしましたが、クラス図の作り方がわかリませんでした。なのでeclipceで自動生成してみました。

##全体の流れ
たった3ステップで作成できてしまいます。

①GEF SDKをインストール
②GEF SDKのインストール
③クラス図の作成

##GEF SDKのインストール
①ヘルプボタンを押下し「新規ソフトウェアのインストールを押下しましょう。
![スクリーンショット 2022-02-14 21.48.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526916/c534721f-cf54-115a-377a-4b60c9f2675a.png)

②作業対象に「http://download.eclipse.org/releases/oxygen」を検索しましょう。
③モデリング選択し、GEF (MVC) SDKをインストールしましょう。
![スクリーンショット 2022-02-14 22.30.14.png](https://q

元記事を表示

Javaのstringについて

# stringとはなんでしょうか
  まずstring本質とはcharアレイです、例えば

“`java
String a = “hello”;
“`

実はと以下のコッド同じです

“`java
char[] b = {‘h’,’e’,’l’,’l’,’o’};
“`
#stringと他のタイプの変換

  ここはintを例にして 文法は以下です

“`java
//int toString: string.valueof(int)
String abc = String.valueOf(200);

//String to int: integer.parseint(string)
int bcd = Integer.parseInt(“200”);
“`
#string tools of date
これはJava.util.dateというの内容を引用する、とscanner同じです。

“`java
java.util.Date now = new java.util.Date();
//フォマード制定したいなら:

元記事を表示

古いASAにASDMでアクセスできないのはTLSバージョンのせい

私はCisco ASA5505を持っている。
ヤフオクで入手した中古品だ。

ASAはASDMというJavaで動く管理用のGUIツールを使って設定する。
CLIでも設定できるが見やすかったり設定しやすかったりするのでだいたいASDMを使う。

久しぶりに引っ張り出してASDMでアクセスしたら、こんなエラーになった。

![asdm error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379353/3006391b-e05d-5c70-e5d7-8eb41e4f1b72.png)

ログインダイアログ右下にあるJavaコンソール(コーヒーカップのアイコン)を開いてアクセスすると、以下のようなエラーが記録されている。

“`java
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
“`

Jav

元記事を表示

Java 初心者でもわかる関数型インタフェイス(Consumer編)

#はじめに
Javaではあらかじめいくつかの関数型インターフェイスが用意されてますが、皆さんはいくつご存知でしょうか。今回は代表的な関数型インターフェースのConsumerインターフェースについて解説していきます。
#Consumerインターフェイスとは?
英語を勉強したことがある人なら「Consumer」という単語は何度か聞いたことあると思います。
日本語に訳すと「消費者」という意味になります。
__名前の通り、Consumerインタフェイスは引数を受け取ってその引数を使った処理を実行するメソッドを定めます。__

その定められたメソッドが__accept()__です。

:::note info
関数型インターフェイスとはメソッドを一つしか持たないインタフェースのことを言います。
:::

##いつ使うの?
引数を受け取ってその引数を使った処理を実行する時に使います。
具体的には引数で受け取ったものをコンソールに出力することやインスタンスの初期化に必要な値を受け取ったりします。

##どうやって使うの?
関数型インターフェイスはラムダ式でよく利用します。
ラムダ式がまだわからないっ

元記事を表示

Javaのラムダ式についてまとめてみる

Javaシルバーの合格を目指して、ラムダ式についてまとめてみました。

もし指摘やアドバイスなどありましたら書いていただけると本当に嬉しく思います。

#ラムダ式とは

まず最初に、ラムダ式のメリットについて書いていきたいと思います。
ラムダ式のメリットとしては、
「抽象メソッドの処理を完結に書くことができる」
というのがメリットとしてあります。

今から、そんな便利なラムダ式の書き方を紹介します

#ラムダ式の書き方

まず最初にラムダ式の構文を紹介します。ラムダ式の構文は

“`
インターフェース名 変数名 = (引数名) -> { 処理内容 };
“`

そして、ラムダ式を書く時に知っておいたほうがいいと思うので知っておいたほうがいいですが、引数名の型を書く必要はありません。
ラムダ式の場合は、引数の型をラムダ式の中に書き込まなくてもJava側できちんと型を推論してくれるので書かなくても大丈夫です。

ラムダ式で実装できるのは、関数型インターフェイスのメソッドです。関数型インターフェースというのは、そのインターフェースの中に入っているメソッドが抽象メソッドかつ一つしかメソッド

元記事を表示

Java 初心者でもわかる関数型インタフェイス(Suppler編)

#はじめに
Javaではあらかじめいくつかの関数型インターフェイスが用意されてますが、皆さんはいくつご存知でしょうか。今回は代表的な関数型インターフェースのSuplierインターフェースについて解説していきます。
#Supplierインターフェイスとは?
英語を勉強したことがある人なら「Supplier」という単語は何度か聞いたことあると思います。
日本語に訳すと「提供者」という意味になります。
__名前の通り、Supplerは引数を受け取らずに値を戻す関数型インターフェースです。__

get()メソッドを持っています。

:::note info
関数型インターフェイスとはメソッドを一つしか持たないインタフェースのことを言います。
:::

##いつ使うの?
引数を受け取らずに値を戻す時に使います。
具体的にはインスタンスを生成する時や、引数関係なく値を出力する時に利用します。

##どうやって使うの?
関数型インターフェイスというのはラムダ式でよく利用します。
ラムダ式がまだわからないっていう方は下記の記事を参考にしてください。
https://qiita.com/110shu

元記事を表示

OTHERカテゴリの最新記事