- 1. Java 二次元配列
- 2. 【Java】Date ( 日付操作 )
- 3. Javaのマルチスレッドについての学習
- 4. 【Java・SpringBoot】Spring JDBC でユーザー一覧画面(SpringBootアプリケーション実践編11)
- 5. Java 標準入力
- 6. Java オブジェクト(Object Oriented Programming)とコンストラクタ、スコープ(local,global)
- 7. Java printf()メソッド
- 8. Java メソッド(method)の作り方とオーバーロード
- 9. Java ArrayListクラス java.util.ArrayList
- 10. Java Wrapperクラス
- 11. Java Stringクラス
- 12. Java 乱数の生成 java.util.Random
- 13. Java Mathクラス Math.sqrt
- 14. Java GUIからの入力 javax.swing.JOptionPane
- 15. Java モニターからの入力 java.util.Scanner
- 16. Java ArrayListクラス 使い方
- 17. [Java]StringBuilder、StringBuffer、プラス演算子、concat、joinによる文字列結合の処理速度比較
- 18. 続・Servlet + Apache FOP で動的に PDF を作成して Web サイトに表示してみるサンプル (+Lombok)
- 19. Note Book : OpenCV v4.5.0-openvino Mask CNN by With Spring Boot
- 20. 【Java】コレクションフレームワーク( set )
Java 二次元配列
#はじめに
学習用のメモになります。#二次元配列とは?
二次元配列とは、2つのインデックスで要素を指定する配列のことです。
#サンプルコード
“`Main.java
public class Main {
public static void main(String[] args) {
String[][] teams = {{“勇者”, “戦士”, “魔法使い”}, {“盗賊”, “忍者”, “商人”}, {“スライム”, “ドラゴン”, “魔王”}};System.out.println(teams[0][0]);
//実行結果 :勇者teams[0][0] = “剣士”;
// 勇者 → 剣士 に更新System.out.println(teams[0][0]);
//実行結果:剣士System.out.println(teams.length);
//実行結果:2
//配列の長さ
【Java】Date ( 日付操作 )
## Date
Dateクラスは、「日付を管理しているクラス」です。
## 【使用場面】上記のように Dateクラスは
– 簡単に日付と時刻を取得できる
– 日付の計算には不向き以上のような特性のため、「*単純に時刻を表示したい時*」につかうといいとおもいます。
## 【書き方】
まず、Javaで日付を操作するときには以下を [インポート] する必要がありますので、こちらを[パッケージ]の下に記述してください。“`java
// Dateのインポート
import java.util.Date;
“`
[インポート]しましたら、通常通り[インスタンス]化を行います。“`java
// Dateのインスタンス化
Date date = new Date();
“`
## 【サンプルコード】 現在時刻を表示こちらは単純に現在時刻を表示するプログラムです。
`System.out.println(インスタンス名);`で現在時刻を表示します。
Javaのマルチスレッドについての学習
Java8でマルチスレッドとマルチプロセスの勉強をする。
# 1.はじめに
## 1-1.イメージ
マルチプロセスとマルチスレッドの簡単なイメージは以下になる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187121/15cee7dc-05d1-0391-b096-935e9fe2fbe0.png)
マルチプロセスの場合は、メモリ空間が別になるので、データのやり取りにはプロセス間通信が必要になる。
逆にマルチスレッドでは、メモリ空間が同じなため、複数スレッドが同時に同じデータにアクセスして、「レースコンディション」のバグがでないように、排他制御を行い、「スレッドセーフ」にする必要がある。
## 1-2.準備
【Java・SpringBoot】Spring JDBC でユーザー一覧画面(SpringBootアプリケーション実践編11)
ホーム画面からユーザー一覧画面に遷移し、ユーザーの詳細を表示するアプリケーションを作成して
Spring JDBCの使い方について学びます⭐️
今回はユーザーを登録(insert)した結果を確認できるように、**ユーザー一覧画面**を実装します!
構成は前回の記事を参考にしてください⭐️前回の記事
[【Java・SpringBoot】Spring JDBC(SpringBootアプリケーション実践編9)](https://qiita.com/suema0331/items/23c8c7e9dec01b792a55)
[【Java・SpringBoot】Spring JDBC でユーザー登録(SpringBootアプリケーション実践編10)](https://qiita.com/suema0331/items/f07852225007570916c5)#リポジトリークラス実装
###queryForObjectメソッドでObjectの取得
* 第1引数に**SQL文**、第2引数に**戻り値のオブジェクトのclass**を指定
* `int count = jdbc.qu
Java 標準入力
#はじめに
学習用のメモになります。#標準入力で1行データを読み込む
“`
//標準入力import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();
}
}
“`#1行に複数要素がある場合
`split`メソッドで`,`区切りで要素を配列(array)に代入する“`
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();String[] array = data.split(“
Java オブジェクト(Object Oriented Programming)とコンストラクタ、スコープ(local,global)
#1,オブジェクトとは
**Object is an instance of a class that may contain attributes and methods.**
車、人間、サイコロ、ピザのインスタンスを作りながら様々なルールを覚えていきましょう!#2,ソースコード
>ルール1,mainメソッドとは別のファイルに記述するmainクラスを記述しているクラスを**アプリケーションクラス**、それ以外を、**一般クラス**と言う。
“`java:Main.java
public class Main {public static void main(String[] args) {
// Object Oriented Programming
// object = an instance of a class that may contain attribut
Java printf()メソッド
#1,printf() メソッドは、フォーマットに用いるメソッドです。
#2,ソースコード
“`java:Main.java
public class Main {public static void main(String[] args) {
System.out.printf(“%d This is a format String “, 123);
boolean myBoolean = true;
char myChar = ‘@’;
String myString = “hiro”;
int myInt = 50;
double myDouble = 1000;System.out.printf(“%b”, myBoolean);
System.out.printf(“%c”, myChar);
System.out.printf(“%s”, myString);
System.out.printf(“%d”, myInt);
System.out.printf(“%f”, myDouble);System.o
Java メソッド(method)の作り方とオーバーロード
#1,Javaではクラスメソッドをオリジナルで作ることができます。
**※一つ一つルールをしっかり覚える必要があります。**
#2,ソースコード
>ルール1,static を必ずつける“`java:Main.java
public class Main {public static void main(String[] args) {
String name = “hiro”;
int age = 21;hello(name, age);
int x = 3;
int y = 4;
int ans = add(x, y);
System.out.println(ans);}
public static void hello(String name, int age) {
System.out.println(“Hello ” + name);
System.out.println(“You are ” + age + ” years old.”);
}public
Java ArrayListクラス java.util.ArrayList
#1,ArrayListの作成方法
>➊ArrayListfood = new ArrayList (); #2,ソースコード
>1次元配列“`java:Main.java
import java.util.ArrayList;public class Main {
public static void main(String[] args) {
ArrayList
food = new ArrayList (); food.add(“pizza”);
food.add(“hambueger”);
food.add(“hotdog”);food.set(0, “sushi”);
food.remove(2);
food.clear();for (int i = 0; i < food.size(); i++) { System.out.println(food.get(i)); } } } ``` >2次元配列
“`java:Main.java
Java Wrapperクラス
#1,Wrapperクラスの紹介です。
Wrapperクラスは、プリミティブ型のデータを参照型と同じような扱いにできるクラスです。
これによって、参照型に含まれているメソッドが使えるようになります。#2,ソースコード
“`java:Main.java
public class Main {public static void main(String[] args) {
// primitive // Wrapper
// ——— // ——-
// boolean // Boolean
// char // Character
// int // Integer
// double // DoubleBoolean a = true;
Character b = ‘@’;
Integer c = 123;
Double d = 3.14;
String e = “hiro”;if (a == true) {
Sys
Java Stringクラス
#1、Stringクラスには、様々な便利機能があるのでその方法を紹介します。
#2,ソースコード
“`java:Main.java
public class Main {public static void main(String[] args) {
String name = “hiro”;
boolean result = name.equals(“hiro”); // true
int result = name.length(); // 4
char result = name.charAt(2); // r
int result = name.indexOf(“h”); // 0
boolean result = name.isEmpty(); // false
String result = name.toUpperCase(); // HIRO
String result = name.toLowerCase(); // hiro
String result = name.trim(); // hiro
String
Java 乱数の生成 java.util.Random
#1,乱数の生成方法
>➊Random random = new Random();>➋int x = random.nextInt(6) + 1; // int型
>➌double y = random.nextDouble(); // double型
>➍boolean z = random.nextBoolean(); // boolean型
#2,ソースコード
“`java:Main.java
import java.util.Random;public class Main {
public static void main(String[] args) {
Random random = new Random();
int x = random.nextInt(6) + 1;
double y = random.nextDouble();
boolean z = random.nextBoolean();System.out.println(x);
System.out.println(y);
System.out.
Java Mathクラス Math.sqrt
#1,平方根の作成方法
>➊Math.sqrt#2,ソースコード
“`java:Main.java
import java.util.Scanner;public class Main {
public static void main(String[] args) {
double x;
double y;
double z;Scanner scanner = new Scanner(System.in);
System.out.println(“Enter side x : “);
x = scanner.nextDouble();
System.out.println(“Enter side y : “);
y = scanner.nextDouble();z = Math.sqrt((x * x) + (y * y));
System.out.println(“The hypotenuse is : ” + z);scanner.close();
}
}
“`#Java チュートリアル:cl
Java GUIからの入力 javax.swing.JOptionPane
#1,GUIからの入力の方法
>➊String name = JOptionPane.showInputDialog(“Enter your name”);>➋int age = Integer.parseInt(JOptionPane.showInputDialog(“Enter your age”));
>➌double height = Double.parseDouble(JOptionPane.showInputDialog(“Enter your height”));
#2,ソースコード
“`java:Main.java
import javax.swing.JOptionPane;public class Main {
public static void main(String[] args) {
String name = JOptionPane.showInputDialog(“Enter your name”);
JOptionPane.showMessageDialog(null, “hello” + name);int a
Java モニターからの入力 java.util.Scanner
#1,モニターに入力した文字列や数値を出力する方法
>➊Scanner scanner = new Scanner();>➋String name = scanner.nextLine(); // 文字列の入力
>➌int age = scanner.nextInt(); // 数値の入力
#2,ソースコード(モニターから入力して、モニターに出力)
“`java:Main.java
import java.util.Scanner;class Main {
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);
System.out.println(“What is your name?”);
String name = scanner.nextLine();System.out.println(“How old are you?”);
int age = sc
Java ArrayListクラス 使い方
# はじめに
学習用のメモになります。#ArrayListとは?
ArrayListは複数の要素を入れるための入れ物ようなもの#ArrayListと配列の違い
* `配列`には格納できる要素の大きさが決まっています。その為、`あらかじめ決めた大きさ`を超える要素を格納すると、IndexOutOfBoundsExceptionエラーが発生します。
* `ArrayList`は要素数の大きさが決まっていません。要素数の上限値を気にせず、どんどん値を追加できます。#ArrayListを使う
“`
import java.util.*;public class Main {
public static void main(String[] args) {
ArrayListteam = new ArrayList (); team.add(“勇者”);
team.add(“魔法使い”);
for (String member : team) {
[Java]StringBuilder、StringBuffer、プラス演算子、concat、joinによる文字列結合の処理速度比較
文字列を結合する方法は色々あるけど「StringBuilder」か「StringBuffer」が推奨されているみたいなので、「StringBuilder」と「StringBuffer」とそれ以外でどのくらい処理速度が違うのか比較してみた。
比較したのは「StringBuilder」「StringBuffer」「プラス演算子」「concat」「join」で、”1″から”10000″までを文字列結合したときの処理速度を比較してみた。結果から見てみると、
|StringBuilder|StringBuffer|プラス演算子|concat|join|
|:–:|:–:|:–:|:–:|:–:|
|2ms|3ms|208ms|102ms|8ms|となり、ほぼ予想通りでStringBuilderとStringBufferがダントツで早くプラス演算子とconcatが遅かったが、Listに詰める処理とか入ってるjoinが思いのほか早かった。
また、測定した各結合処理のコードは以下の通り。“`java:StringBuilder.java
public static void
続・Servlet + Apache FOP で動的に PDF を作成して Web サイトに表示してみるサンプル (+Lombok)
[前回の投稿](https://qiita.com/yamachan360/items/c028911b3eab49d0a281) は [Apache FOP](https://xmlgraphics.apache.org/fop/) を用いて、JSP/Servlet サイトで PDF を動的に生成して表示するまでを試しました。日本語の表示がちょっと厄介でしたね。
Qiita 上でイイネ!(LGTM)はゼロなのですが、知り合いからは反応があったので、もうちょっと進めてみます。コードは [apache-fop-jp-sample リポジトリ](https://github.com/yamachan/apache-fop-jp-sample) にあります。
# 今回のネタ
さて、具体的には以下のような感じの拡張を試してみます。
* 入力値からデータ用 xml をダイレクトに生成してるけど、DB から取ってこれますか
* フォーマット指定がファイル読み込みだけど、これも DB から取ってこれますか
* サンプルがシンプルすぎるけど、説明レターとか請求書的なやつもちゃんと作れそうですか
Note Book : OpenCV v4.5.0-openvino Mask CNN by With Spring Boot
### Mask RCNN
####Final Result
![8829708882_48f263491e_z.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/732297/53a56d71-53cc-a617-7f4e-00a200edcbcc.jpeg)####Mask
![8829708882_48f263491e_z.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/732297/00093541-f249-ffaf-afe7-f1c6d4baab7d.jpeg)####Rectangle Mask
![8829708882_48f263491e_z.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/732297/917dbe76-524f-e009-5481-d743c036f48e.jpeg)
####log
2020-11
【Java】コレクションフレームワーク( set )
# 【Set】 重複要素のないコレクション
## Setとは
Setは、Listのと同様に 「**データをまとめたもの**」になります。
ですが、双方にはこのような違いがあります。– Mapのようなキーと値の関連付けをしない
– インデックスが存在しない
– 同じ値のものは2つ以上持てないSQL にある [「DISTINCT」や、「ORDER BY」 ](https://qiita.com/takahirocook/items/89aba8585dcd42dd310f)のようなイメージだと思います。
### Setの使い所
以上に書いた「 **同じ値のものは2つ以上持てない** 」などの特性をいかし、このような使い所が考えられます。– 商品を安い順に並べる
– 会社の部署はいくつあるのか調べる
– ポケモンのタイプは何種類あるか調べる
– この学校の生徒はどこの出身者がいるかみる。といったとき Set が役立つのではないかと思います。
## Setの種類
Setインタフェースを実装するものには、`HashSetクラス`, `TreeSetクラス`, `Link