🔧

実践的なJavaプログラミング:API活用と簡単なユーティリティ作成

2025/01/20に公開

はじめに

Javaを学び始めた方の中には、「実際のプログラミングでどう活かせばいいんだろう?」と悩む方も多いのではないでしょうか?
本記事では、以下の2つの実践的な内容を解説するので、ぜひご参考いただければと思います。

  1. Java標準APIの基本と使い方
  2. シンプルなユーティリティクラスの作成

1. Java標準APIの基本と使い方

Javaには豊富な標準ライブラリが用意されており、それらを使いこなすことで効率的なコードを書くことができます。ここでは特に役立つCollections APIとStreams APIについて紹介します。

1-1. Collections API

Javaのコレクション(ListSetMapなど)は、データの管理に便利です。

1-2. Streams API

Java 8以降で追加されたStreams APIは、データ操作をシンプルにする強力なツールです。

この説明だけでは、少し抽象的に感じるかもしれません。次に、ECサイトの開発者になったつもりで、具体的な例を用いて解説していきます。

2. Collections API

顧客がショッピングカートに商品を追加し、内容を確認したり、削除したりできる機能を作る必要があります。商品を管理する際、リスト操作を簡単にしてくれるのがCollections APIです。

例:ショッピングカートの基本操作

以下は、商品の追加、表示、削除を行うショッピングカートの例です。

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

public class ShoppingCart {
    public static void main(String[] args) {
        List<String> cart = new ArrayList<>();

        // 商品を追加
        cart.add("リンゴ");
        cart.add("バナナ");
        cart.add("オレンジ");

        // ショッピングカートの内容を表示
        System.out.println("現在のカートの中身: " + cart);

        // 商品を削除
        cart.remove("バナナ");

        // 更新後の内容を表示
        System.out.println("カートの中身(更新後): " + cart);
    }
}

出力例:

カートの中身: [リンゴ, バナナ, オレンジ]  
カートの中身(更新後): [リンゴ, オレンジ]

Collections APIのポイント

  • ArrayList は、要素を自由に追加・削除できる動的なリストです。例えば、ショッピングカートに商品を追加したり削除したりするような操作を簡単に実現できます。
  • その他の操作:並び替えや検索もCollectionsユーティリティクラスで簡単に実現可能。

2. Streams API

ECサイトを立ち上げた際、売上データを分析するかと思います。例えば、特定の商品がどれだけ売れたかを集計したり、売上金額の合計を算出するような操作を考えます。
大量のデータを、わかりやすく短いコードで処理できるのStreams APIです。

例:売上データのフィルタリングと集計

以下は、売上データを処理して「特定の商品に関する売上数」と「全商品の合計売上金額」を計算する例です。

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

public class SalesAnalysis {
    public static void main(String[] args) {
        // 売上データ (商品名, 売上金額)
        List<Sale> sales = Arrays.asList(
            new Sale("リンゴ", 120),
            new Sale("バナナ", 80),
            new Sale("リンゴ", 120),
            new Sale("オレンジ", 100),
            new Sale("バナナ", 80)
        );

        // リストからリンゴの商品を絞り込み、売上数をカウント
        long appleSalesCount = sales.stream()
                            .filter(sale -> "リンゴ".equals(sale.getProduct()))
                            .count();

        System.out.println("リンゴの売上数: " + appleSalesCount);

        // 全商品の合計売上金額を計算
        int totalRevenue = sales.stream()
                                .mapToInt(Sale::getPrice)
                                .sum();
        System.out.println("全商品の合計売上金額: ¥" + totalRevenue);
    }
}

class Sale {
    private String product;
    private int price;

    public Sale(String product, int price) {
        this.product = product;
        this.price = price;
    }

    public String getProduct() {
        return product;
    }

    public int getPrice() {
        return price;
    }
}

出力例:

リンゴの売上数: 2  
全商品の合計売上金額: ¥500

Streams APIのポイント

  • filter:特定の条件に合致する要素を抽出。
  • mapToInt:各要素から金額を取得して合計。
  • Streams APIは、大量のデータを効率よく処理できます。例えば、何千件もの売上データから特定の商品を集計したり、売上金額を計算する際に非常に便利です。

最後に

これらを活用すれば、日常的な課題を解決するアプリケーションが作れるようになります。
例えば、自分の趣味や業務に関連したリスト操作やデータ集計を試してみるのも良いでしょう。
まずは小さなプロジェクトや趣味のアイデアから始めてみましょう。コードを書く楽しさを感じながら、
少しずつ応用力を高めてください!

Discussion