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

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

Leetcode 1833. Maximum Ice Cream Bars

https://leetcode.com/problems/maximum-ice-cream-bars/

## 難易度
### Medium

## アプローチ
### Brute-force

“`java
class Solution {
public int maxIceCream(int[] costs, int coins) {
Arrays.sort(costs);
int result = 0;
for (int c : costs) {
coins -= c;
if (coins < 0) { break; } result++; } return result; } /* WA public int maxIceCream_WA(int[] costs, int coins) { Arrays.sort(c

元記事を表示

Leetcode 452. Minimum Number of Arrows to Burst Balloons

https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/description/

## 難易度
### Medium

## アプローチ
### Brute-force

“`java
class Solution {
public int findMinArrowShots(int[][] points) {
Arrays.sort(points, (a, b) -> Integer.compare(a[1],b[1]));

int result = 1;
int prev = 0;

for(int curr = 1 ; curr < points.length; curr++){ if(points[curr][0] > points[prev][1]){
result++;
prev = curr;
}

元記事を表示

Javaのコレクションフレームワーク

## コレクションフレームワークとは
**コレクションフレームワーク**とは、コレクション(オブジェクトの集合、プログラムの中で複数のオブジェクトを管理するためのクラスやインタフェースを総称してコレクションと呼ぶ)を操作するために用意されたJava標準のAPIで、用途に応じて、リスト(List)、Set(セット)、Map(マップ)、Queue(キュー)といったインターフェイスを使い分けることができる。

コレクションに求められる機能には、例えば次のようなものがある。
・**膨大な数のオブジェクトから目的のオブジェクトを素早く取り出したい**
・**同じインスタンスヘの参照が重複して格納されることのないようにしたい**
・**キーワードを使って目的のオブジェクトを取り出せるようにしたい**
・**特定の値で順番に並べ替えたい**

コレクションフレームワークの実装クラスは、[実装スタイル][インターフェイス名]の形式で命名されている。

| コレクションフレームワークの主な実装クラス | | |
| — | — | — |
| インターフェイス | 実装クラス | 概要

元記事を表示

いす作りで考えるfactory methodパターン

factoryを使わないパターン
①いす職人にウォールナットの木材で椅子を作るよう指示

factoryを使うパターン
①ウォールナット材職人に木材用意するよう指示
②いす職人に指定の木材職人から渡された木材で椅子を作るよう指示
※どんな木材かは意識しない。

登場クラスと紐づけ
iSample・・・広義の木材
Sample・・・ウォールナット材
iCreator・・・広義の木材職人
Creator・・・ウォールナット材職人
Logic・・・いす職人

プログラム
“`java
class Sample implements ISample {
}
interface ISample {
}
interface ICreator {
public ISample create();
}
class Creator implements ICreator{
@Override
public ISample create() {
return new Sample();
}
}
class Logic {
private I

元記事を表示

class with final

finalをつけたクラスはextendsできない
“`java
final public class SampleFinalClass {
int i;
void method(){};
}
public class SampleSubClass extends SampleFinalClass {
int i;
}
“`
“`
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project mavenproject1: Compilation failure
com/mycompany/mavenproject1/SampleSubClass.java:[11,37] final com.mycompany.mavenproject1.SampleFinalClassからは継承できません
“`

元記事を表示

JavaでWord, Excel, PowerPoint, PDFからバーコードを読み取る方法

バーコードは、バーとスペース(またはドット)で構成され、数字や文字を機械で読み取ることができる表現方法である。今日、バーコードは食料品店、医院、法律事務所、郵便局、小売店など、数え切れないほど広く使われている。Code39、Code128、PDF417、DataMatrix、QRなどのバーコードを様々な種類の文書(Word、Excel、PowerPoint、PDFなど)から読み取ることができることは、実に有益なことであると言えます。
今回は、[Spire.Office for Java](https://jp.e-iceblue.com/introduce/spire-office-for-java.html)を使って、Javaで**MS Office文書やPDFからバーコードを読み取る方法**について紹介します。このライブラリでは、よく見かける40種類以上の1次元・2次元バーコードがサポートされています。
– **[JavaでWordからバーコードを読み取る](#javaでwordからバーコードを読み取る)**
– **[JavaでExcelからバーコードを読み取る](#javaでe

元記事を表示

コレクションとジェネリクス~不変と共変~【Java】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650867/fb48906b-bf43-d5d4-360a-df5d8aff45da.png)

この記事ではコレクションとジェネリクスを使いこなせるようになるための基礎知識をまとめています。
ラムダ・ストリーム・オプショナルを使いこなす基礎としても。

# 1. コレクションとは?

Javaでは提供されている、複数のデータを扱うためのクラスのこと。配列よりも柔軟に複数のデータを扱える。配列は作成された時点で要素数が固定され、状況に応じて柔軟に要素数を変更したい処理には適さない。コレクションを利用すれば、要素数の変更にも柔軟に対応できる。

この記事では集合オブジェクトという言葉には

– 配列
– コレクション

を含めます。上記の通り、コレクションと配列を区別します。

コレクションといえば下記で紹介するものになります。

## 1-1. コレクションの種類

– リスト(List) 順序通りに並べて格納
– セット(Set) 順

元記事を表示

【Java】配列とリスト

# はじめに
プログラミング初学者の者です。オンラインでプログラミングを学習させて頂いてるのですが、さらに理解を深めていきたいと思い、学習したことを備忘録として、残して理解を深めていきたいと思います。
また、間違った点など、ありましたら、ご指摘いただけると幸いです。よろしくお願いします。

# Rubyの配列との違い
Javaの配列は、Rubyの配列と性質が異なります。

Javaの配列は、格納する要素の数を最初に決める必要があり、かつ後で要素数を変更することができないようです。

要素を増やす場合は、サイズの大きな配列に新たに作成して元データをコピーするか、ArrayListというリストの一種を使用します。

# Javaの配列
“`java
class Main {
public static void main(String[] args) {
int[] scores;
scores = new int[3];

scores[0] = 1;
scores[1] = 5;
scores[2] = 10;

System.ou

元記事を表示

MacにJavaをインストールする

# Javaのインストール

“`bash
# 最新のJavaをインストール
brew install openjdk

# パスを追加
echo ‘export PATH=”/opt/homebrew/opt/openjdk/bin:$PATH”‘ >> ~/.zshrc

# 現在のバージョンを確認
java -version
“`

# バージョンを切り替える場合

“`bash
# cask-versionsをインストール
brew tap homebrew/cask-versions

# jenvをインストール(※バージョンを切り替えたりする場合)
brew install jenv

# jenvのパスを追加(※バージョンを切り替えたりする場合)
echo ‘export PATH=”$HOME/.jenv/bin:$PATH”‘ >> ~/.zshrc
echo ‘eval “$(jenv init -)”‘ >> ~/.zshrc

# ディレクトリを作成
mkdir -p ~/.jenv/versions

# jenvにJDKを追加
jenv add `/u

元記事を表示

Liferay 共通クラスのエクスポートとインポート

### Liferay開発 共通クラスのエクスポートとインポート

Liferay開発にて 共通クラスを独自で作成し、その関数を利用する際の
「(共通クラス)bnd.bndの記載の仕方」と「(共通関数を利用するクラス)build.gradleの記載の仕方」をメモしておきます。

# 1.共通クラス作成 & bnd.bdnの記載方法
1-1.共通クラス作成
  javaのみのクラスを作成する時は、「Liferay Module Project」の「service」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518095/d3c10d29-2909-5f58-bfdf-8caa453dc41f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518095/ac817aa2-7fac-7708-5da5-5038bb86823b.png)
![image.png](h

元記事を表示

iOSのアプリをアップデートしたときにリジェクトをくらった理由と対応

# はじめに
iOSのバージョンアップもあり、[CotoGoto](https://cotogoto.ai/)のアプリの最新化を図るために久しぶりにライブラリのアップデートをしたのですが、リジェクトになってしまい、その理由と対応をまとめておきます。

まずは、リジェクトをくらった内容ですね。

> Guideline 4.0 – Design
>
> We noticed that the user is taken to the default web browser to sign in or register for an account, which provides a poor user experience.
>
> Next Steps
>
> To resolve this issue, please revise your app to enable users to sign in or register for an account in the app.
>
> You may also choose to implement the Safari V

元記事を表示

Spring BootでHello Worldをブラウザで表示するまでの流れ

## はじめに
今回は、Spring Bootで画面に「Hello World」を表示するまでの流れを書いていきます。
こちらは、VSCodeでSpring Bootプロジェクトを開始した後からの流れを書いていきます。
(今回はSpring Securityを依存関係に含んでいないのでログイン画面は表示されません)

プロジェクト開始までの流れはこちらの記事を参考にしてみて下さい。↓
https://qiita.com/hukuryo/items/0bb58861751db3c20d26

## HTMLテンプレートを作成
まず「Hello World」を表示するHTMLを簡単に書いていきます。
“`:main/resources/templates/hello.html




元記事を表示

Java メソッドについて

この記事はJavaにおいて自分の中で曖昧なもの、整理できていないものをまとめていく自分用の記事です。

・メソッド

メソッドとは、なにかを動かす処理をするプログラムのこと。Javaにもともと備わっているメソッドとJavaにもともと備わっているメソッドを組み合わせたりして自分で作るメソッドの2種類ある。

・Javaにもともと備わっているメソッド

“`Java:javaMethod.java
public class javaMethod {
public static void main(String[] args) {
String message = “hello”;
message.toUpperCase();
}
}
“`

上記のtoUpperCaseは文字列を大文字化するメソッドであり、Javaにもともと備わっているメソッドである。
私たちはこのようなJavaにもともと備わっているメソッドを組み合わせたりして大きなメソッドを作ってプログラムを作っていく。

・引数のないメソッド
元記事を表示

java 変数のルールやマナー

こんにちは。
今日は

* なぜ変数を使うの?
* 変数を使うにあたっての決まりやルール
についてアウトプットしていこうと思います。

そもそもなぜ、変数なんて使う必要があるのか、
それには理由があります。
実際開発をしていくと、プログラムの中には、とんでもない種類の値が出てきます。
これを開発者は整理し、わかりやすくコードを書いていきます。
そして、それをすぐに修正、変更できるようにしなければならないのです。

例えば、
“`java:Main.java
System.out.println(“Aさん、javaを学習しましょう”);
System.out.println(“Bさん、javaを学習しましょう”);
System.out.println(“Cさん、javaを学習しましょう”);
“`
と言う文があるとします。
この文の、`java`のところを、`プログラミング`に変更しなければならない時、
`java`の部分を三箇所書き換えなければなりません。
これだけならいいけど、こんなことが沢山あったら変更するの大変ですよね?
そこで、便利なのが変数って訳ですね。
“`java

元記事を表示

クラスの分割とAPIの活用

# はじめに
今回はインプレス社が出版しているスッキリわかるjava入門についての練習問題を説明し、クラスの分割とAPIについての個人的な解釈を記述します。今回は第6章辺りを説明します。

# 動作環境

– Window 11
– Java SE 11

# ソースコード
“`java
package comment;

public class Main{

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Zenhan.doWarusa();
Zenhan.doTogame();
Kouhan.callDeae();
Kouhan.showMondokoro();
}

}

“`
“`java
package comment;

public class Zenhan {

public static void doWarusa() {
System.out.println(“きなこでござる。くえません

元記事を表示

Leetcode 290. Word Pattern

https://leetcode.com/problems/word-pattern/description/

## 難易度
### Easy

## アプローチ
### Brute-force

“`java
class Solution {
public boolean wordPattern(String pattern, String s) {
HashMap map = new HashMap<>();
String[] arg = s.split(” “);
int length = pattern.length();
if(arg.length != length){
return false;
}

for (int i = 0; i < length; i++) { char p = pattern.charAt(i); if (map

元記事を表示

Leetcode 520. Detect Capital

https://leetcode.com/problems/detect-capital/description/

## 難易度
### Easy

## アプローチ
### Brute-Force

“`java
class Solution {
public boolean detectCapitalUse(String word) {
boolean check = false;
for (char a : word.toCharArray()) {
if (65 <= a && a <= 90) { check = true; } else { check = false; break; } } if (check) { return true; } for (char a : w

元記事を表示

Object型equalsメソッドとString型equalsメソッドの違い

# Object型equalsメソッドとString型equalsメソッドの違い

javaで出てくる”==”演算子と”equalsメソッド”の違いは、プリミティブ型とString型それぞれの参照時の使い分けです。
例えば

`int a = 10;`
`int b = 10;`
`System.out.println(a == b); //true`

このようにプリミティブ型の変数は値が直接格納されるため参照値の比較ではなく同じ値同士の比較が行われます。
Stirng型の文字列の比較も同じように”==”比較は可能です。

`String a = “aa”;`
`String b = “aa”;`
`System.out.println(a == b); //true`

ただこのようにString型をnewして使うと結果が変わってきます。

`String a = “aa”;`
`String b = new String(“aa”);`
`System.out.println(a == b); //false`

この時の違いとしては上のString a =”aa”;は*

元記事を表示

JavaのArrayListクラス、ジェネリクス、イテレーター(Iterator)

## ArrayListクラスとは
・java.utilパッケージに含まれている複数のオブジェクトをまとめて管理出来る**コレクションクラス**の一つ
・配列は最初に格納出来る要素数は決まっているがArrayListクラスは要素の数が**動的**に変わる配列で文字列や整数などのいろいろな配列を入れる事が出来る。

・格納する要素のデータ型の指定する際には**ジェネリクス(<>)** 内に指定する(ジェネリクスとして<〜>で囲んだ指定部分を「型パラメータ」とも呼び、型パラメータにはクラス名を指定する。)
“`
ArrayList<データ型(型パラメータ)> オブジェクト名 = new ArrayList<>();
“`
データ型の部分には ArryaListの要素に格納する値のデータ型を指定する。例えば文字列を格納する場合は次のように記述する。
“`:例
ArrayList list = new ArrayList();
//クラス名  オブジェクト名  =  new  クラス名;
“`
右辺のArrayListで一つのクラス名と考

元記事を表示

anonymous class, local class, inner class

Java Gold

“`java
public class Outer {
public static class InnerStatic {
static int i1;
static void method() {
System.out.println(“i am Inner class method of static”);
}
}
public class InnerInstance {
int i1;
void method() {
System.out.println(“i am Inner class method of instance”);
}
}
public static void main(String[] args) {

class LocalClass {
int i2;
void method() {

元記事を表示

OTHERカテゴリの最新記事