1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】初心者エンジニア! 簡単な処理を実装してみた

1
Posted at

IT学習を始めたばかりの頃は、

  • 「クラスって何?」
  • 「Listって何のために使うの?」
  • 「Streamって結局何が便利なの?」

といった疑問を持つ方が多いと思います。

今回は とてもシンプルな本管理プログラムを通して、
Java の基礎的な考え方をまとめて学習してみました。


今回作成したプログラムの概要

本の情報を管理し、条件に応じて検索できる簡単なプログラムを作成しました。

扱う情報

  • タイトル
  • 著者
  • 管理番号

実装した検索機能

  • タイトルで検索
  • 著者で検索
  • 管理番号で検索

実行結果

[おはよう,佐藤,1]
[こんばんは,木村,3]
[さようなら,田中,4]

コード例

Main.java

package org.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        Book book = new Book("おはよう", "佐藤", 1);
        Book book2 = new Book("こんにちは", "加藤", 2);
        Book book3 = new Book("こんばんは", "木村", 3);
        Book book4 = new Book("さようなら", "田中", 4);

        List<Book> bookList = new ArrayList<>(Arrays.asList(book, book2, book3, book4));

        Library library = new Library();
        System.out.println(library.serchByTitle(bookList, "おはよう"));
        System.out.println(library.serchByAuthor(bookList, "木村"));
        System.out.println(library.serchByNumber(bookList, 4));
    }
}

Book.java

package org.example;

public class Book {
    String title;
    String author;
    int number;

    public Book(String title, String author, int number) {
        this.title = title;
        this.author = author;
        this.number = number;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public int getNumber() {
        return number;
    }

    @Override
    public String toString() {
        return title + "," + author + "," + number;
    }
}

Library.java

package org.example;

import java.util.List;

public class Library {

    // タイトル検索
    public List<Book> serchByTitle(List<Book> bookList, String title) {
        return bookList.stream()
                .filter(v -> v.getTitle().equals(title))
                .toList();
    }

    // 著者検索
    public List<Book> serchByAuthor(List<Book> bookList, String author) {
        return bookList.stream()
                .filter(v -> v.getAuthor().equals(author))
                .toList();
    }

    // 番号検索
    public List<Book> serchByNumber(List<Book> bookList, int number) {
        return bookList.stream()
                .filter(v -> v.getNumber() == number)
                .toList();
    }
}

このプログラムを通して学べること

① クラスの役割を分ける考え方

  • Book
    → データを表すクラス
  • Library
    → 処理(検索)を行うクラス
  • Main
    → プログラムの実行を担当

「1つのクラスに全部書かない」
というオブジェクト指向の基本を学べます。


② List は「複数のデータ」を扱うためのもの

List<Book> bookList
  • 同じ型のデータをまとめて扱える
  • 検索や並び替えがしやすい

実務では List を使わない日はほぼありません


③ Stream を使った検索処理

bookList.stream()
        .filter(v -> v.getAuthor().equals(author))
        .toList();

これは、

  • リストの中から
  • 条件に合うものだけを取り出して
  • 新しい List として返す

という処理を とても読みやすく書いています。


④ 「表示」と「処理」を分ける重要性

  • 検索結果は List<Book> として返す
  • 表示は System.out.println() に任せる
  • 表示形式は toString() にまとめる

この分離ができると、

  • 修正が楽
  • コードが読みやすい
  • バグが減る

というメリットがあります。


⑤ toString() の役割

@Override
public String toString() {
    return title + "," + author + "," + number;
}

これを実装することで、

System.out.println(book);
System.out.println(bookList);

と書くだけで、中身が分かるようになります。

デバッグやログ出力で非常に重要なポイントです。


まとめ

この「簡単な処理」の中には、

  • クラス設計
  • List の使い方
  • Stream の基本
  • toString() の意味
  • 処理と表示の分離

といった Java の土台となる考え方が詰まっています。


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?