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

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

java Calendarクラス(時刻のセット、比較、フォーマット)

#Calendarクラスのインスタンスに任意の時刻をセット

“`java

Calendar tempTime = Calendar.getInstance();

// 時間をセット
tempTime.set(Calendar.HOUR_OF_DAY, trainHour);
tempTime.set(Calendar.MINUTE, trainTime);
“`

#AがBより前の時間かどうか比較

“`java

boolean isBefore = false;
//tempTimeがsafeTimeより前の時間かどうか
isBefore = tempTime.before(safeTime);
“`

#「HH:mm」にフォーマットして出力
“`java
import java.text.SimpleDateFormat;

—————————————

// カレンダークラスのインスタンスを生成
Calendar ansTime = Calendar.getInstance()

元記事を表示

java(条件分岐と繰り返し)

##for文による繰り返し
“`java
for (int i = 0; i < 10; i++) { ``` ①`int i = 0;` 初期化処理 最初に1回だけ実行される文(ループ変数) ②`i < 10; `  繰り返し条件 ループを継続するか否かを判定する条件式 ③`i++`     繰り返し時処理 }まで到達した直後に自動的に実行される文 ##制御構造のネスト ```java if (height > 170) {
if (eyesight > 1.0) {
“`
「分岐の中に分岐」多重構造を`入れ子`や`ネスト`という

元記事を表示

parquet-toolsのビルドとParquetファイルのマージ方法

複数のParquetファイルを1つのParquetファイルにマージする方法についてメモ

##結論
parquet-toolsを使用すれば簡単にマージできます。
しかし[jarとして配布されているもの](https://mvnrepository.com/artifact/org.apache.parquet/parquet-tools/1.9.0)にはhadoop-clientが含まれていないらしく、ローカルでの実行ができませんでした。

“`
# java -jar parquet-tools-1.9.0.jar cat test.parquet
org/apache/hadoop/fs/Path

“`
そのため自前でビルドする必要があります。
以下のサイトを参考にビルドしました。

parquet-tools を使って Parquet ファイルの中身やスキーマを確認する方法

##準備

CentOS7.5 サーバ(GUI使用) でセットアップしたものを使用

**1.もろもろ必要そうなパッケージをインストール**

`

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder CADDi 2018 C 素因数分解

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder CADDi C – Product and GCD](https://atcoder.jp/contests/caddi2018/tasks/caddi2018_a)*
Difficulty: 772

今回のテーマ、素因数分解 + ハッシュ
# Ruby
入力例 4 の`972439611840`を素因数分解しますと、`{2=>6, 3=>3, 5=>1, 103=>4}`となります。
これを N 個の整数に分配すれば解答が求まります。N 個未満の素数は、最大公約数に寄与しないわけです。

“`ruby.rb
require ‘prime’

n, p = gets.split.map(&:to_i)
if p ==

元記事を表示

java学習(条件式)

## 関係演算子(文字列の比較)
“`java
if (str == “本”) {
“`
“`java
if (str equals (“本”)) {
“`
**上が間違い 下が正しい。**
上( == )でもコンパイルエラ〜は起きず、`実行できるけど時々変な動きをする`という不具合が起きる。

##論理演算子
“`java
if (age >= 18 && month == 5) {
“`
年齢が18以上、`かつ`5月生まれ

“`java
if (name.equals(“斎藤”) || name.equals(“斉藤”)) {
“`
名前が斎藤、`または`斉藤

##否定演算子
“`java
if(!(age >= 18)) {
“`
年齢が18以上で`ない`ならば

元記事を表示

ArrayListで独自に作成したクラスを扱うメモ

#ArrayListで独自に作成したオブジェクトを扱う
はじめまして。はねうまです。
自作のクラスのリストを扱うときのメモを書いてみます。
**例:自作クラス「Food」のリストを扱う**
addメソッドの引数の中でFoodをインスタンス化し、リストに追加する。

“`java
List foodList = new ArrayList<>();
foodList.add(new Food(“バナナ”,”果物”));
foodList.add(new Food(“キャベツ”,”野菜”));
foodList.add(new Food(“カレー”,”料理”));
“`

要素にアクセスするには・・・
(1)Foodクラスの変数を用意して、そこにリストからgetして代入する
(2)その変数を使って自作クラスの処理をする
(3)拡張for文の利用

“`java
Food fd = foodList.get(0); // (1)
fd.printFood(); // (2)
fd.setFoodName(“りんご”); // (2)

for(Food f : fo

元記事を表示

【実践‼】Javaデータベース連携(Connector/J 8.0.20)

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

– [【初心者でもできる‼】Windows10にMySQLをインストールする方法(MySQL Server 8.0.20)](https://qiita.com/ryome/items/68766f81f0668ff6876b)

元記事を表示

僕のStAX(Java)

自分用の備忘録
StAXではXMLの読み込みにXMLStreamReaderとXMLEventReaderのどちらかを使う。
今回はXMLStreamReaderを使用。

##そもそものSAX,StAX,DOMの使い分けというか違い
[こちら](https://www.javainthebox.net/laboratory/JavaSE6/stax/stax.html)が参考になります。
[こっち](https://engineer-club.jp/java-xml-read#-StAXXMLXMLStreamReader)も参考になった。

##今回使用するサンプルのXML
[こちら](http://www.sotechsha.co.jp/xml/sample.xml)のサイトにあった和歌のXMLを拝借させていただきます。

“`xml

<万葉集>
<巻 no="1">
<歌>
<歌番号>8
<原文>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜
<作者

元記事を表示

Vue.js + Jerseyデスクトップアプリ

先日、簡易的なデスクトップアプリの実装例として[vue-nest-desktop-app](https://github.com/unhurried/vue-nest-desktop-app)([Vue.js + NestJSでデスクトップアプリを実装する](https://qiita.com/unhurried/items/01dbb48a5ea872a22778))を紹介したが、バックエンドの開発はNode.jsよりもJava(Spring Boot + Jersey)の方が慣れているので、バックエンドをJavaで置き換えた[vue-jersey-desktop-app](https://github.com/unhurried/vue-jersey-desktop-app)を作成した。

以下では開発のポイントを簡単にまとめている。

#### アプリケーション構成

![システム構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186068/73403486-c948-3e8d-39b4-1e

元記事を表示

僕のDOM(Java)

自分用の備忘録

##DOMライブラリは何に使うの?
XMLを解析するためのライブラリ

##今回使用するサンプルのXML
[こちら](http://www.sotechsha.co.jp/xml/sample.xml)のサイトにあった和歌のXMLを拝借させていただきます。

“`xml

<万葉集>
<巻 no="1">

<歌>
<歌番号>8
<原文>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜
<作者>額田王(ぬかたのおおきみ)
<読み>
熟田津(にきたつ)に、船(ふな)乗りせむと、月待てば、潮もかなひぬ、今は漕(こ)ぎ出(い)でな

<イメージ>image/m0008.jpg
<意味>熟田津(にきたつ)で、船を出そうと月を待っていると、いよいよ潮の流れも良くなってきた。
さあ、いまこそ船出するのです。

<歌>
<歌番号>20
<原

元記事を表示

【資格】Java Silver SE11 合格体験記

#はじめに
2020年の2月にJava Silver SE11に合格したので、受験動機や勉強期間、勉強方法など合格までの流れを書いていこうと思います。

###受験概要
|受験日|合格ライン|正答率|結果|
|:-:|:-:|:-:|:-:|
|2020年2月27日|63%|85%|合格|

#目次

1. 筆者のレベル感
2. 受験動機
3. 勉強期間と勉強方法
4. 受験当日
5. まとめ

#1.私のレベル感
某専門学校卒の2年目プログラマー(受験当時)
1年半ほど業務でC#の開発案件を経験

#2.受験動機
私の所属する部署の上長に「年度内にせめてJava Silverを取得してね」と言われ、
基礎を勉強する良い機会だと思い受験を決めました。
~~資格取得の一時金目当てじゃないよ(小声)~~

#3.勉強期間と勉強方法

期間は2ヶ月間、勉強方法は主に黒本の問題をひたすら解き、
問題のコードを読んだだけで実行結果のイメージがしづらいコードについては実際にコードを書いて動かしてみるという流れで行いました。

使用した黒本↓(

元記事を表示

Go/Java は Windows の MAX_PATH(260) を超えるファイルにアクセスできるのか

調査した結果、特に何もしなくてもアクセスできるようだった。
Windows の場合 CreateFile API を通じてさらにパスのプリフィクスに \\?\ をつける(「\\?\C:\Windows\test.txt」みたいに)必要があるが、Go/Java だと内部でやってくれる模様。

まずは Go の場合のテスト

“`go:main.go
package main

import (
“fmt”
“io/ioutil”
“os”

“github.com/blono/win” // Fork of lxn/win see https://qiita.com/manymanyuni/items/c41f5bf0fd141e299336
)

func main() {
longPath := `C:\Users\manymanyuni\Desktop\long\loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong\loo

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder ARC 086 C ハッシュのソート

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Regular Contest 086 C – Not so Diverse](https://atcoder.jp/contests/arc086/tasks/arc086_a)*
Difficulty: 431

今回のテーマ、ハッシュのソート
# Ruby
重複したリストと言えば、ハッシュですよね。

“`ruby.rb
n, k = gets.split.map(&:to_i)
a = gets.split.map(&:to_i)
h = Hash.new(0)
a.each do |x|
h[x] += 1
end
puts n – h.values.sort.reverse[0, k].inject(:

元記事を表示

Listを利用した組み合わせパターンの列挙

#1.概要
これまで組み合わせの全パターンを取得する際には、1文字単位でのアナグラム方式で順列の列挙を行っていた。
例、A.B.C では以下の 3! (= 6) パターン

“`java
ABC
ACB
BAC
BCA
CAB
CBA
“`
参考:全組み合わせの列挙 Java

しかし、上記の方法だと2文字以上の値をひとつの要素として扱いたいときに上手くいかなかった。(※例えば、4.8.10 の場合、10をひとつの要素としたいが、1文字単位で組み換えが起こるため、以下のように4.8.1.0 の 4! パターンで列挙されてしまう)。

“`java
4810
4801
4180
4108
4081
4018
8410
8401
8140
8104…
以下略
“`

そこで、文字数に関わらない順列の列挙をどうにかして実現できないかと考えた。
#2.Listを利用した要素の列挙
上記参考ではcharの集合であるStringを利用して組み合わせパ

元記事を表示

Selenium + REST-Assured を組み合わせた自動 API テスト

Web API を開発しているときに、API 単体のテストであれば様々な UnitTest ツールを使用してテストの自動化を行う事ができますが、Web サイトとのインタラクションが必要な場合にちょっと困ります。
一例としては、OAuth などの認証が前提のAPI処理を書く時などです。SPA などで構築されていてブラウザで表示しないと意図した動作にならないケースなどでは、どうしてもブラウザ経由でアクセスする必要があります。

今回、Webの自動テストに **Selenium** 、API のテストに **REST-Assured** を用いてテストの自動化を行ってみたので、簡単にまとめてみます。

# Tools
## Selenium
https://github.com/SeleniumHQ/selenium
言わずと知れたWeb Testツールです。
Java の API も存在するので、Java から直接操作することが出来ます。

## REST-Assured
https://github.com/rest-assured/rest-assured
Method Chain 的

元記事を表示

Visual Studio CodeによるSpring Boot2 Webアプリ開発 SQLServer接続編

#はじめに
[こちら](https://qiita.com/t_skri/items/4e3c11050f93e4761dda)で作成したSQLServer接続WebアプリのSpring Boot版です。

#環境
OS:Windows 10 Pro 64bit
DB:SQL Server 2019(Cent OS 8 on Hyper-V)
Editor:Visual Studio Code 1.44.2
JDK:AdoptOpenJDK 11.0.6+10 x64

#ひな型作成
spring initializr[(https://start.spring.io/)](https://start.spring.io/)で、以下の設定で作成しました。

![2020-05-05 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591423/6fc9fd3f-c0f8-d796-829c-9ac19fa0d896.png)

作成したひな型を「D:\JAVA\Project」に展開します。

#

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 107 B – Grid Compression](https://atcoder.jp/contests/abc107/tasks/abc107_b)*
Difficulty: 434

今回のテーマ、文字列操作
# Ruby
“`ruby.rb
h, w = gets.split.map(&:to_i)
a = []
h.times do |i|
s = gets.chomp
a.push(s) if s.index(‘#’)
end
(w – 1).downto(0) do |i|
if a.all?{|x| x[i] == ‘.’}
a.each do |x

元記事を表示

UbuntuでJAVA_HOMEの設定

UbuntuでJAVA_HOMEの設定方法について記載する。

– javaは、alternativesを経由している前提。
– /usr/bin/java -> /etc/alternatives/java -> (実際のjavaのロケーション)
– PATHは、/usr/binに通っているので、特に対応しない。
– 複数のjavaを切り替える場合もsourceコマンドを実行することで対応できるようにしておく。
– 切り替え方は、こちらを参照。「 [Ubuntuで、複数のJavaをインストールして切替を行う](https://qiita.com/yochapan/items/af86a320035f8db7daf4)」

# やり方
### /etc/profle.d配下にjava_home.shを作成

– /etc/profile.d配下のshellは、ログイン時に実行される。

“`sh
sudo vi /etc/profile.d/java_home.sh
“`

### JAVA_HOMEのエクスポートを記載

– javaコマンドの絶対

元記事を表示

バージョン違いによるSpring Bootの機能について

[前回](https://qiita.com/wataru908/items/239404926f926743e65b) の続きです。
今回はSpring Boot2になったことで、使用できるメソッド等が変更されていることについてです。

#変更点
##1.findOne
教材には、findOneメソッドを使用しているが、これをそのまま使用すると、
findByIdメソッドへの変更を促されます。
また、戻り値もOptional型になっています。

“`java:教材(以前のバージョン)
public MeetingRoom findMeetingRoom(Integer roomId) {
return meetingRoomRepository.findOne(roomId);
}
“`

“`java:SpringBoot2変更点
public Optional findMeetingRoom(Integer roomId) {

return meetingRoomRepository.findById(roomId);
}
“`

Opt

元記事を表示

Resilience4j の RateLimiter を用いた Rate-Limitting

https://github.com/resilience4j/resilience4j

resilience4j は主に Java 向けの Circuit Breaker 実装として著名なものになる。Rate-Limitting 関連の機能も存在している。

https://github.com/resilience4j/resilience4j#ratelimiter

以下では以下のサンプルプログラムをベースに検証を行っている。

https://github.com/resilience4j/resilience4j-spring-boot2-demo

# Configuration
## build.gradle

Spring Boot と連携をする場合は `io.github.resilience4j:resilience4j-spring-boot2` を使用する。

“`
dependencies {
compile(‘org.springframework.boot:spring-boot-starter-webflux’)

元記事を表示

OTHERカテゴリの最新記事