バナー画像

APIとは何なのか?

APIは、A=Application、P=Programming、I=Interfaceの略で、システムが提供する機能や、外部のライブラリを使用するためのインターフェースを指します。

JavaでのAPIは、クラスやインターフェースの形で提供されています。アプリケーション開発者は、APIで提供されているクラスのメソッドを呼び出し、必要な機能を利用します。

例えば、Javaの学習初期で学ぶ、「Hello World」の文字を画面に出力するプログラムも、”System.out.println”というJavaの標準APIを使用します。

System.out.println("Hello World");

細かいことはAPIにまかせて本質的なことに集中

Javaの開発では、さまざまなAPIを利用してプログラムを作成するのが一般的です。すでに用意されているAPIを活用することで、無駄なコードを減らし、本質的な作業に集中できます。

例えば、テキストファイルにデータを出力するプログラムで考えてみます。もし何のAPIも使用せず、1から全て作ろうと思うと、OSとの細かいやり取りなどすべて自前で実装する必要があり、おそらくコード量にしたら、数千〜数万行になるでしょう。

ファイルを扱うクラスは、Javaの標準APIに既に用意されており、これを使えばたった数行でプログラムを作ることも可能です。

APIを積極的に利用して、細かい事は全部APIにまかせて、本質な作業に集中しましょう。

あなたもJavaのAPI開発者

API開発者と言われると仰々しいですが、あなたがJavaのクラスやメソッドを作ったことがあれば、それもJavaのAPIです。

さらに、それがチームのメンバーが使う為の共通メソッドであれば、それは立派なJavaのAPIで、あなたもJavaのAPI開発者です。

APIを作ったらJavadocコメントを書こう

せっかくAPIを作っても、その使い方が分からなければ意味がありません。作成したクラスやメソッドにJavadocコメントをしっかり書いて、APIの利用者に使い方を説明しましょう。Javadocの書き方は以下の記事で解説していますので、こちらもご覧ください。

【関連記事】
初心者でもわかる!Javadocの意味と書き方【サンプルあり】

Javaでよく使うAPI(リスト編)

ここからは、Javaでよく使うAPIについて紹介します。

List

Listは、0~始まるインデックスを使用して、複数の値をまとめて管理する時に使用します。

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

public static void main(String[] args) {
  //Listインターフェイスを実装したArrayListを生成
  List<String> list = new ArrayList<>();

  //要素を2つ追加
  list.add("Apple");
  list.add("Google");

  //Listの内容をコンソールに出力
  System.out.println("1つの要素:" + list.get(0));
  System.out.println("1つの要素:" + list.get(1));
}

Map

Mapは「キー」と「値」を使用して、複数の値をまとめて管理する時に使用します。

import java.util.HashMap;
import java.util.Map;

public static void main(String[] args) {
  //Mapインターフェイスを実装したHashMapを生成
  Map<String, String> map = new HashMap<>();

  //要素を2つ追加
  map.put("item1", "value1");
  map.put("item2", "value2");

  //Mapの内容をコンソールに出力
  System.out.println("item1=:" + map.get("item1"));
  System.out.println("item=2:" + map.get("item2"));
}

Javaでよく使うAPI(日付編)

Calendar

Javaでの日付操作は、Calendarクラスを使います。うるう年を考慮した日付の加減算など、便利なメソッドが揃っています。

【現在日時を取得】

//現在日時で、Calendarのインスタンスを取得
Calendar cl = Calendar.getInstance();

【日付の加算】

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Calendar cl = Calendar.getInstance();

//カレンダーの日付を、2019年9月1日に設定
cl.set(2019, 8, 1);

//日付を2日加算する
cl.add(Calendar.DATE, 2);

//コンソールに計算結果を表示
System.out.println(sdf.format(cl.getTime()));

Javaでよく使うAPI(ファイル編)

ファイルの読み込み

ファイルの読み込みには、FileReaderクラスを使用します。次のサンプルコードでは、パスで指定したファイルの内容を読込み、コンソールに内容を出力しています。

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public static void main(String[] args) throws IOException {

  //読み込むファイルを指定
  File file = new File("path/to/dir/sample.txt");

  //FileReaderクラスを生成する
  FileReader reader = new FileReader(file);

  //ファイルから1文字ずつ読み込む
  int data;
  while ((data = reader.read()) != -1) {
    System.out.print((char) data);
  }

  //ファイルクローズ
  reader.close();
}

FileReaderクラスは、ファイル読込の基本的なクラスで、他にも文字コードを指定してファイルを読むFileInputStreamクラスや、高速にファイルを読み込む為のBufferedReaderなどがあります。興味がある方は色々調べてみて下さい。

ファイルの書き込み

Javaでファイルに書き込むには、FileWriterクラスと、PrintWriterクラスを使用します。

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public static void main(String[] args) throws IOException {
  // FileWriterクラスを生成する
  FileWriter file = new FileWriter("path/to/dir/sample.txt");
  // PrintWriterクラスを生成する
  PrintWriter pw = new PrintWriter(new BufferedWriter(file));

  //ファイルに文字列を書き込む
  pw.println("Apple");
  pw.println("Google");

  //ファイルを閉じる
  pw.close();
}

APIは進化する

Javaの標準APIは、Javaのバージョンが上がるたびに進化します。例えば、Java8で追加されたStream APIとラムダ式では、配列やリストの操作が劇的にシンプルになりました。

次の例は、リストの要素から偶数の要素を抽出するサンプルコードです。Java7以前の方法と、Java8で追加されたStream APIを使った方法をコードを比較してみましょう。

【Java7以前の方法】

//1~6までの値をリストに格納
List<Integer> list = Arrays.asList(new Integer[] {1, 2, 3, 4, 5, 6});

//偶数の要素を格納するリスト
List<Integer> result = new ArrayList<>();

//1件ずつ要素が偶数か判定し、偶数の要素をresultに追加する
for (int i = 0; i < list.size(); i++) {
  if (list.get(i) % 2 == 0) {
    result.add(list.get(i));
  }
}

//結果をコンソールに出力
for (Integer integer : result) {
  System.out.println(integer);
}

【Java8以降のStream APIを使った方法】

//1~6までの値をリストに格納
List<Integer> list = Arrays.asList(new Integer[] {1, 2, 3, 4, 5, 6});

//listから偶数の要素のみを抽出
Stream<Integer> result = list.stream().filter(n -> n % 2 == 0);

//結果をコンソールに出力
result.forEach(n -> System.out.println(n));

上の例の通り、Stream APIでは、リストや配列に関する処理がシンプルで直観的に書けるようになっていることが分かります。

JavaのAPIは進化するため、一度覚えたら終わりではなく、もっと便利なAPIが追加されていなか、新しい情報には常に目を向けておきましょう。

廃止されたAPIには注意

Javaのバージョンが上がると、先述したように新しいAPIが追加されますが、古いAPIが削除されることもあります。APIが廃止候補になることがアナウンスされたら、そのAPIは使用しないようにしましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。