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

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

JavaーStreamAPIー2章

### 前置き
最近は暑くて外出する気にもなりませんね…
田舎者の私は川までドライブして涼んでいます(*´Д`)

今回は前回に引き続き「StreamAPI」についてです。

###「StreamAPIってなに?」
> コレクションを扱う時に要素を一つずつ取り出して、何らかの処理を加え、特定の要素だけを取り出したり、配列に変換したり、コレクションを詰め替えたりすることがよくあります。
StreamAPIではこれらの処理をメソッドとラムダ式で記述することでコードをより簡潔にできます。 –黒本解説より引用

「簡単に書けるってことは理解も簡単ってことよね!?」

>StreamAPIでは取り出しった要素に加える処理のことを「中間操作」、
中間操作を終えた要素の集合に対して行う最終処理を「終端操作」と呼びます。
これらの操作は、StreamAPIの基本となる機能をまとめたjava.util.stream.Streamインターフェースに定義されており、次のような種類があります。 –黒本解説より引用

#### 【中間操作の種類】
| 処理を行うメソッド | 概要 |
|:-:|:-:

元記事を表示

ModelMapperでBeanマッピング

# ModelMapperを利用してオブジェクト間の変換を行う

DBから取得してきた値をHTMLに返すとき、画面で入力した値をDBに挿入するときなどに有効である

### 変換ができるように設定する

今回は、以下の内容で行う

– Date→Stringは、yyyy/MM/ddで変換する
– String→LocalTimeは、秒ありなしで分ける
– Boolean→Stringは、0と1に変換する

“`java:ModelMapper
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.util.Date;
import java.util.Locale;
import java.util.Objects;

import org.apache.commons.lang3.StringUtils;
import org.modelmapper.AbstractConverter;
import org.modelmapper.Converter;
import org.model

元記事を表示

[Java] javadoc

# javadocとは
* javaソースコードの説明書
* HTML形式のAPI仕様書

# 使い方
* 先頭が「/**」で、後尾は「*/」でコメントを囲む
* 「@」がついたタグが用意されている
* 例「@‌author」はプログラム製作者を表す
“`java:製作者
/**
* @author Oriko
* /
“`

# 注意
* 余計なことまで書けるから冗長なドキュメントになるかもしれない

# おわり
* これを書くことでjavaのソースコードが読みやすくなる

* 参考文献

> [Javadoc ドキュメンテーションコメントの書き方](https://qiita.com/maku77/items/6410c67ce95e08d8d1bd)
>
> [【Java】Javadocってなに?](https://qiita.com/mzmz__02/items/0a5b8f10a03258641f9d)

元記事を表示

Javaでプログラムの作成手順の動作を確認してみた

# 概要
Javaでプログラムの作成手順の動作を確認してみました。以下のページを参考にしました。

Javaプログラム作成手順

https://www.javadrive.jp/start/before/

Javaを使ったプログラムの作成と保存

https://www.javadrive.jp/start/before/index2.html

プログラムをコンパイルしてクラスファイルを作成する

https://www.javadrive.jp/start/before/index3.html

Javaのプログラムを実行する

https://www.javadrive.jp/start/before/index4.html

# ソースファイルを作成しコンパイルし実行する
以下のファイルを作成しました。
“`JSample3_1.java
class JSample3_1{
public static void main(String[] args){
System.out.println(“Hello”);
}
}
“`

以下のコマンドを実行しました

元記事を表示

C言語系(Java C# Ts Go) 日本語系(Mind DNCL プロデル なでしこ)各言語構文を比較して自作言語Re:Mindの構文を定める(try~catch文)

# はじめに
Java C# Ts(TypeScrpt) GoといったC言語を由来とする新旧のプログラミング言語とMind なでしこ DNCLなどの日本語プログラミング言語の制御構文を比較して自作言語Re:Mindの構文を定めます。今回はtry~catch文。いわゆる例外処理に関連する構文です。

自作言語Re:Mindの詳しい利用シーンのイメージは[こちらへ](https://qiita.com/mylifewithviolin/items/9d58db8a101807c19bde)。すみません、[設計段階です。](https://qiita.com/mylifewithviolin/items/9214582528edcbd606ad)日本語プログラミング言語で、C言語を由来とする新旧言語へのトランスコンパイラ言語です。

## この記事内容の作業目的
今回は各言語のtry~catch文の構文を比較検討します。プログラミング言語によっては、例外処理をサポートしない場合がありますので、トランスパイラ言語としてはこのあたりをどうさばくかが問題となります。ただし、主たるターゲット言語をJ

元記事を表示

ABC310A~Eの解答[Java]

## はじめに
今回はコンテスト中にEまで解けたのでそれを載せようと思います。

では、見ていきましょう。
なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc310/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。

## A – Order Something Else
問題文は[こちら](https://atcoder.jp/contests/abc310/tasks/abc310_a)

$\mathrm{min}(P,Q+D_i)$を求めて出力してあげれば良いです。
“`A.java
final class Main {

private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner( System.in );
private static final SimplePrin

元記事を表示

Iteratorインタフェース

## Iteratorインタフェース
Iteratorインタフェースは、Javaのコレクションフレームワークにおいて、コレクション内の要素に順番にアクセスするためのメソッドを提供するインタフェースです。
コレクションの要素に対して安全な反復処理: Iteratorはコレクション内の要素に対して安全な反復処理を行うことができます。Iteratorを使用することで、コレクション内の要素を逐一アクセスすることができます。これにより、コレクション内の要素に対して一貫した方法で反復処理を行うことができます。

### 主なメソッド
| メソッド| 意味 |
| — | — |
| hasNext |次の要素が存在するか判定する。あればtrue、なければfalse
| next | 次の要素を取得する |
|remove|現在の要素を削除する|

“`java
public class hasNext {
public static void main(String[] args) {
ArrayList animal = new ArrayLis

元記事を表示

MacにEclipseを簡単にインストールする方法

# はじめに
帝京大学理工学部の授業でEclipseを使用することになったので、Eclipseをインストールしました。

「Pleiades All in One」という、統合開発環境である Eclipse 本体と、日本語化を行うための Pleiades プラグインおよびプログラミング言語別に便利なプラグインをまとめた Windows、Mac 向けパッケージがあったので、そちらをインストールした手順になります。

# 1.パッケージをダウンロード
[こちら](https://mergedoc.osdn.jp/)からサイトにアクセスします。
最新版をダウンロードするので、赤枠のEclipseを2023をクリックします。

また、違うバージョンをダウンロードしたい方は、2022,2011をダウンロードしてください。

![スクリーンショット 2023-07-15 20.06.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608795/a8fc077a-a948-53b4-311a-5bc4a84b55

元記事を表示

Javaのインストールと環境設定の確認をしてみた

# 概要
Javaのインストールと環境設定の確認をしてみました。以下のページを参考にしました。

https://www.javadrive.jp/start/install/

# 順番に以下のページを確認

https://www.javadrive.jp/start/install/index5.html

https://www.javadrive.jp/start/install/index1.html

https://www.javadrive.jp/start/install/index4.html

https://www.javadrive.jp/start/install/index3.html

# 私の環境はUbuntuなので以下で一発設定完了
“`
sudo apt install openjdk-8-jdk
“`
以下のコマンドでインストールされているのを確認できます。
“`
sudo apt search openjdk
openjdk-8-jdk/jammy-security,jammy-updates,now 8u372-ga~us1-0u

元記事を表示

[Java] ArrayList

# ArryaListとは
* リスト構造でデータを格納できる入れ物クラス
* 大きさが決まっていない(配列と違い可変)

# ArryaListの使い方
### 初期化
“`java : 初期化
ArrayList<型> 変数名 = new ArrayList<>();
“`
* 右辺の<>の型名は省略可能

### 要素の格納
* add()メソッドを使う
“`java:格納
List samplelist = new ArrayList<>();
samplelist.add(“リンゴ”);
samplelist.add(“ゴリラ”);
samplelist.add(“ラーメン”);
“`

### 要素の取得
* get()メソッドを使う
“`java:取得
System.out.println(samplelist.get(0)); // “リンゴ”
System.out.println(samplelist.get(1)); // “ゴリラ”
System.out.println(samplelist.get(2)); // “ラーメン”

元記事を表示

【JavaGold】newScheduledThreadPoolメソッド

## 概要
指定された数のスレッドを持つスケジュール可能なスレッドプールを作成するための静的メソッド。

##### 例

“`java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledThreadPoolExample {

public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(3);

// タスクをスケジュール
executorService.schedule(() -> {
System.out.println(“Task 1 executed after 2 se

元記事を表示

【JavaGold】newSingleThreadScheduledExecutorメソッド

## 概要
単一のスレッドを持つスケジュール可能なスレッドプールを作成するためのメソッド。

##### 例

“`java
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class SingleThreadScheduledExecutorExample {

public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

// タスクをスケジュール
executorService.schedule(() -> {
System.out.println(“Task executed

元記事を表示

@Autowiredは何がうれしいのか?

spring boot で、@Autowired アノテーションは何がうれしいのか?
都度、new する書き方だと何が不便なのか?がよくわからなかったため、調べたことをメモします。
DIコンテナがどうこう、という難しいことは一旦触れないで、直感的にわかりやすい部分だけ説明します。

## @Autowiredを使わない場合と、使う場合を比較

例えば、下記のような依存関係にある 3つのクラス Application, BusinessService, DatabaseService を比較します。ここでいう「依存」とは、クラスの引数に別のクラスのインスタンスをとっている、という意味です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1605263/30a70ee5-a942-13c5-8c23-0a6280d3215b.png)

“`java:@Autowiredを使わない場合
public class DatabaseService {
public void sav

元記事を表示

Redisのクラスターモードで、mgetコマンドを使用してキーの一括値を取得する際の問題の解決策について説明します

Redisのクラスターモードにおいて、mgetコマンドを使用して複数のキーに対応する値のセットを一括で取得する必要がありましたが、値の取得時に次のエラーが発生しました:”ERR CROSSSLOT Keys in request don’t hash to the same slot”。これを日本語に翻訳すると、「リクエスト内のこれらのキーは同じスロットにハッシュされていません」という意味です。つまり、Redisのクラスターモードでは、ハッシュ分割が行われるため、データを挿入するたびにRedisは自動的に各データが属するスロットを計算します。また、各スロットが異なるノードに存在する可能性もあるため、mgetを使用する際には、このバッチのキーが異なるノードに存在する場合に値を取得できなくなります。

Redisがデータのスロット位置を計算するアルゴリズムに基づいて考えると([原文はこちら](https://juejin.cn/post/7045122646958161950))、次のようなコードが使われます。

“`java
unsigned int HASH_SLOT(char *k

元記事を表示

Easy ExcelでWrite操作を行う際のセルの結合方法は以下の通りです。

`@ExcelMerge`(自分で追加した):
“`java
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ExcelMerge {

}
“`

`MergeHandler`:
“`java
public class CustomAbstractMergeStrategy implements WorkbookWriteHandler {

/**
* 結合する行数
*/
private List mergeRowCountList;

/**
* 結合が必要な列のインデックス
*/
private List mergeColumnIndexList;

/**
* オブジェクト
*/
private Class clazz;

/**
* セルの結合ルール:

元記事を表示

Javaを学んでみたPart2【随時更新】

前回[Javaを学んでみた【随時更新】](https://qiita.com/Neko-wo-kau/items/fb5864d17046c1be8583 “Javaを学んでみた【随時更新】”)が長くなりすぎて、書きにくい&重くなってきたので、わけることにしました。やること、書いていくことは以前と変わりません。頑張るぞー:muscle::fire:

## 5章・メソッド
**〜7/17までに更新予定**

## 6章・複数クラスを用いた開発
**〜7/20までに更新予定**
## 7章・オブジェクト指向をはじめよう
**〜7/23までに更新予定**
## 8章・インスタンスとクラス
**〜7/26までに更新予定**
## 9章・さまざまなクラス機構
**〜7/29までに更新予定**
##

元記事を表示

【C#VB.NET】PDF文書に表を作成

表は、通常のテキストよりも視覚的にデータを提示することができます。 PDF文書に表を挿入することで、読者はデータ間の関係を理解しやすくなり、その結果、データに基づいて文書を深く理解することができます。 さらに、表は視覚的にも魅力的です。 表の書式を設定することで、読者に深い印象を残すことができるのです。 この記事では、[Free Spire.PDF for .NET](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-net.html)を使って**PDF文書に表を作成する方法**を紹介します。
– **[PdfTableクラスでPDF文書に表を作成する](#pdftableクラスでpdf文書に表を作成する)**
– **[PdfGridクラスでPDF文書内に表を作成する](#pdfgridクラスでpdf文書内に表を作成する)**

Free Spire.PDF for .NETは、PDF文書で表を扱うために**PdfTable**と**PdfGrid**という2つのクラスを提供しています。 それぞれの違いは以下の通りです。

|

元記事を表示

[Java] Object型

# はじめに
## Object型とは
* Javaの全てのクラスのスーパークラスとなる特殊な型(創造主)
* Object型変数はどんな型のオブジェクトでも参照できる

# 使い方

“`java:代入
Object obj1 = “Hello”; // 文字列を代入
Object obj2 = 10; // 整数を代入
“`

“`java:取得
Object obj = “Hello”;
String str = (String) obj; // 動的な型キャストを行い、オブジェクトを元の型に戻す
“`

# おわり
* こういうのがあるんだ程度だから使ったり調べたりして覚える

元記事を表示

[GCP] Cloud Run 機能調査xHttpClientでリクエスト

[Cloud Run](https://cloud.google.com/run)は、Google Cloud Platform(GCP)のサーバーレスコンピューティングプラットフォームであり、コンテナ化されたアプリケーションを実行するための環境を提供している。以下にCloud Runの概要と主な機能について説明する。

## Cloud Runの概要
Cloud Runは、ステートレスなコンテナによって構成されるアプリケーションの実行を可能にします。Cloud Runでは、コンテナイメージを提供してアプリケーションをデプロイするだけでなく、自動スケーリング、リクエストトリガー、イベントの統合などの機能を利用することができる。また、Cloud RunはKnativeの上に構築されており、ノードレスなアプリケーション実行環境として機能する。

## Cloud Runの機能
### 1. ステートレスな実行環境
Cloud Runはステートレスなコンテナ実行環境であり、ステートフルなコンポーネントを含むアプリケーションを実行することはできない。ステートレスな実行環境のため、インスタンスの

元記事を表示

【JavaGold】scheduleWithFixedDelayメソッド

## 概要
指定された初期遅延時間(最初の実行までの遅延時間)の後にタスクを実行し、前のタスクの終了から指定された遅延時間が経過するごとにタスクを繰り返し実行するためのメソッドである。

つまり、前のタスクの終了から次の処理の実行までの遅延時間を指定することで、次の処理との間隔を一定にすることができる。 

“`java
ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
“`
##### 引数について
このメソッドは、`Runnable`オブジェクト(または`Callable`オブジェクト)を受け取る。

– `initialDelay`:初期遅延時間(最初の実行までの遅延時間)
– `delay`:前のタスクの終了から次のタスクの実行までの遅延時間
– `unit`:遅延時間の単位を表す`TimeUnit`列挙型

##### 例

“`java
import java.util.concurrent.Executor

元記事を表示

OTHERカテゴリの最新記事