この記事を読むのに必要な時間:およそ 0.5 分
ダウンロード
本書のサンプルコードは以下のページで公開しています。
(2022年7月1日更新)
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
以下,第1刷までの内容に対する訂正となります。
P.34 表3.2の4行目
P.52 下から2行目
誤 |
Arrays.asList(new String[] {"blue", "red", "green"});
|
正 |
new ArrayList<>(Arrays.asList("blue", "red", "green"));
|
P.53 2つ目のコード
誤 |
public class Colors {
// Collections#unmodifiableListメソッドを使って
// 変更不可能なListを作成
public static final List<String> BASIC_COLORS =
Collections.unmodifiableList(
Arrays.asList(new String[] {"blue", "red", "green"}));
}
|
正 |
public class Colors {
// List#ofメソッドを使って
// 変更不可能なListを作成
public static final List<String> BASIC_COLORS =
List.of("blue", "red", "green"));
}
|
P.82 6行目
誤 |
private Document buildDocument() throws Exception {
|
正 |
public Document buildDocument() throws Exception {
|
P.109 コードの3行目
P.114 14行目
誤 |
const time = timeReservation[i].time;
|
正 |
const time = timeReservation.time;
|
P.117 リスト7.5
誤 |
...
// ❶ユニークな日付の配列を作成
const buildDates = (reservations) => {
const dates = [];
for (r of reservations) {
if (!dates.includes(r.date)) {
dates.push(r.date);
}
}
return dates;
};
// ❷時間ごとの予約データの配列を作成
const buildTimeSlots = (reservations) => {
const timeSlots = [];
const times = [];
for (timeReservation of reservations) {
if (!times.includes(timeReservation.time) {
// 対象時間のすべての日付の予約データの配列を作成
const dateReservations = reservations.filter((r) => {
return r.time == timeReservation.time;
});
const timeSlot = {
time: r.time,
dateReservations: dateReservations,
};
timeSlots.push(timeSlot);
times.push(r.time);
}
}
return timeSlots;
};
...
|
正 |
...
// ❶ユニークな日付の配列を作成
const buildDates = (reservations) => {
const dates = [];
for (const r of reservations) {
if (!dates.includes(r.date)) {
dates.push(r.date);
}
}
return dates;
};
// ❷時間ごとの予約データの配列を作成
const buildTimeSlots = (reservations) => {
const timeSlots = [];
const times = [];
for (const timeReservation of reservations) {
if (!times.includes(timeReservation.time)) {
// 対象時間のすべての日付の予約データの配列を作成
const dateReservations = reservations.filter((r) => {
return r.time == timeReservation.time;
});
const timeSlot = {
time: timeReservation.time,
dateReservations: dateReservations,
};
timeSlots.push(timeSlot);
times.push(timeReservation.time);
}
}
return timeSlots;
};
...
|
P.118 リスト7.6
誤 |
...
// ❶データ構造を変換
const dates = buildDates(reservations);
const timeSlots = buildTimeSlots(reservations);
console.log('<table>');
// ❷1行目(日付の行を出力)
console.log('<tr>');
console.log('<th>日付</th>');
for (const date of dates) {
console.log(`<th>${date}</th>`);
});
// ❸2行目以降(時間ごとの予約状況の行を出力)
for (const timeSlot of timeSlots) {
console.log('<tr>');
console.log(`<td>${time}</td>`);
for (r of timeSlot.dateReservations) {
console.log(`<td>${r.count}/${r.limit}</td>`);
}
console.log('</tr>');
});
console.log('</table>');
|
正 |
...
// ❶データ構造を変換
const dates = buildDates(reservations);
const timeSlots = buildTimeSlots(reservations);
console.log('<table>');
// ❷1行目(日付の行を出力)
console.log('<tr>');
console.log('<th>日付</th>');
for (const date of dates) {
console.log(`<th>${date}</th>`);
}
// ❸2行目以降(時間ごとの予約状況の行を出力)
for (const timeSlot of timeSlots) {
console.log('<tr>');
console.log(`<td>${time}</td>`);
for (const r of timeSlot.dateReservations) {
console.log(`<td>${r.count}/${r.limit}</td>`);
}
console.log('</tr>');
}
console.log('</table>');
|
P.187 8行目
P.188 コードの1行目
P.190 下から13行目
P.194 リスト11.9の6行目
誤 |
Map<String, Object> record = new HashMap<String, Object>();
|
正 |
Map<String, Object> record = new HashMap<>();
|
P.192 リスト11.6の3行目
誤 |
return StringUtils.trim(value.toString());
|
正 |
return value.toString().trim();
|
P.50 リスト4.aの2~4行目(2022年7月1日修正)
誤 | int total = 0;
for (int i = 1; i < 10; i++) {
int n = i * i;
total += n;
}
alert(total);
|
---|
正 | var total = 0;
for (var i = 1; i < 10; i++) {
var n = i * i;
total += n;
}
alert(total);
|
---|
P.50 リスト4.bの2行目