{"id":656,"date":"2024-11-14T13:55:23","date_gmt":"2024-11-14T04:55:23","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=656"},"modified":"2025-03-24T08:52:56","modified_gmt":"2025-03-23T23:52:56","slug":"%e3%80%90%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%e3%80%91java%e3%83%a9%e3%83%a0%e3%83%80%e5%bc%8f%e3%81%ae%e5%9f%ba%e7%a4%8e%e3%81%8b%e3%82%89%e5%ae%9f%e8%b7%b5%e3%81%be%e3%81%a7-%e7%8f%be","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=656","title":{"rendered":"\u3010\u5b8c\u5168\u30ac\u30a4\u30c9\u3011Java\u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u307e\u3067 &#8211; \u73fe\u5834\u3067\u4f7f\u3048\u308b15\u306e\u6d3b\u7528\u4f8b"},"content":{"rendered":"<div id=\"sgb-css-id-1\">\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">\u306f\u3058\u3081\u306b<\/a>  <\/li>  <li>    <a href=\"#i-1\">\uff11\uff0eJava\u30e9\u30e0\u30c0\u5f0f\u3068\u306f\uff1f\u521d\u5fc3\u8005\u306b\u3082\u308f\u304b\u308b\u57fa\u790e\u89e3\u8aac<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-2\">1.1 \u30e9\u30e0\u30c0\u5f0f\u304c\u751f\u307e\u308c\u305f\u80cc\u666f\u3068\u91cd\u8981\u6027<\/a>      <\/li>      <li>        <a href=\"#i-3\">1.2 \u5f93\u6765\u306e\u533f\u540d\u30af\u30e9\u30b9\u3068\u306e\u9055\u3044<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-4\">1.3 \u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u672c\u69cb\u6587\u3068\u66f8\u304d\u65b9\u306e\u30eb\u30fc\u30eb<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-5\">\uff12\uff0e\u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3068\u5177\u4f53\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-6\">2.1 Comparator\u3067\u306e\u30bd\u30fc\u30c8\u51e6\u7406\u306e\u7c21\u7565\u5316<\/a>      <\/li>      <li>        <a href=\"#i-7\">2.2 Runnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u306e\u5b9f\u88c5\u4f8b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-8\">2.3 ActionListener\u3067\u306e\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-9\">\uff13\uff0eStreamAPI\u3068\u7d44\u307f\u5408\u308f\u305b\u305f\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-10\">3.1 filter()\u3067\u306e\u30c7\u30fc\u30bf\u7d5e\u308a\u8fbc\u307f<\/a>      <\/li>      <li>        <a href=\"#i-11\">3.2 map()\u3067\u306e\u8981\u7d20\u306e\u5909\u63db<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">3.3 collect()\u3092\u4f7f\u3063\u305f\u30c7\u30fc\u30bf\u306e\u96c6\u8a08<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">\uff14\uff0e\u73fe\u5834\u3067\u4f7f\u3048\u308b\u5b9f\u8df5\u7684\u306a\u30e9\u30e0\u30c0\u5f0f\u30d1\u30bf\u30fc\u30f310\u9078<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">4.1 Optional\u578b\u3068\u306e\u7d44\u307f\u5408\u308f\u305b\u306b\u3088\u308bNull\u30c1\u30a7\u30c3\u30af\u306e\u7c21\u7565\u5316<\/a>      <\/li>      <li>        <a href=\"#i-15\">4.2 \u4e26\u5217\u51e6\u7406\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-16\">4.3 \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u4f7f\u3063\u305f\u53ef\u8aad\u6027\u306e\u5411\u4e0a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-17\">\uff15. \u30e9\u30e0\u30c0\u5f0f\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-18\">5.1 \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u6ce8\u610f\u70b9<\/a>      <\/li>      <li>        <a href=\"#i-19\">5.2 \u30c7\u30d0\u30c3\u30b0\u6642\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-20\">5.3 \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-21\">\uff16\uff0e\u767a\u5c55\u7684\u306a\u30e9\u30e0\u30c0\u5f0f\u306e\u4f7f\u3044\u65b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-22\">6.1 \u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4f5c\u6210<\/a>      <\/li>      <li>        <a href=\"#i-23\">6.2 \u8907\u6570\u306e\u30e9\u30e0\u30c0\u5f0f\u306e\u7d44\u307f\u5408\u308f\u305b\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-24\">6.3 Java 8\u4ee5\u964d\u306e\u65b0\u6a5f\u80fd\u3068\u306e\u9023\u643a\u6d3b\u7528\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-25\">\u7dcf\u62ec\u3068\u307e\u3068\u3081<\/a>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">\u306f\u3058\u3081\u306b<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-2\">\n<p class=\"wp-block-paragraph\">Java\u306e\u30e9\u30e0\u30c0\u5f0f\u306f\u3001Java 8\u3067\u5c0e\u5165\u3055\u308c\u305f\u6a5f\u80fd\u3067\u3001\u30b3\u30fc\u30c9\u3092\u3088\u308a\u7c21\u6f54\u306b\u3001\u8aad\u307f\u3084\u3059\u304f\u3001\u305d\u3057\u3066\u4fdd\u5b88\u6027\u304c\u9ad8\u3044\u5f62\u3067\u66f8\u304f\u3053\u3068\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u307e\u3067\u3001\u73fe\u5834\u306e\u30a8\u30f3\u30b8\u30cb\u30a2\u304c\u5373\u5ea7\u306b\u6d3b\u7528\u3067\u304d\u308b\u5f62\u3067\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-7\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\"><strong>\u3053\u306e\u8a18\u4e8b\u3067\u5b66\u3079\u308b\u3053\u3068<\/strong><\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-3\">\n<li>\u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u672c\u6982\u5ff5\u3068\u69cb\u6587<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-4\">\n<li>\u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u3068\u5177\u4f53\u4f8b<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-5\">\n<li>Stream API\u3068\u306e\u52b9\u679c\u7684\u306a\u7d44\u307f\u5408\u308f\u305b\u65b9<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-6\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30c7\u30d0\u30c3\u30b0\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/li>\n<\/div>\n\n\n<li>\u767a\u5c55\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u3068\u5fdc\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-8\">\n<p class=\"wp-block-paragraph\">\u305d\u308c\u3067\u306f\u3001Java\u30e9\u30e0\u30c0\u5f0f\u306e\u4e16\u754c\u3092\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-9\">\n<h2 class=\"wp-block-heading\" id=\"i-1\">\uff11\uff0eJava\u30e9\u30e0\u30c0\u5f0f\u3068\u306f\uff1f\u521d\u5fc3\u8005\u306b\u3082\u308f\u304b\u308b\u57fa\u790e\u89e3\u8aac<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-10\">\n<h3 class=\"wp-block-heading\" id=\"i-2\">1.1 \u30e9\u30e0\u30c0\u5f0f\u304c\u751f\u307e\u308c\u305f\u80cc\u666f\u3068\u91cd\u8981\u6027<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-11\">\n<p class=\"wp-block-paragraph\">Java\u306e\u30e9\u30e0\u30c0\u5f0f\u306f\u3001Java 8\u3067\u5c0e\u5165\u3055\u308c\u305f\u9769\u65b0\u7684\u306a\u6a5f\u80fd\u3067\u3001\u3088\u308a\u7c21\u6f54\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u305f\u3081\u306e\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-15\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\"><strong>\u5c0e\u5165\u306e\u80cc\u666f<\/strong><\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-12\">\n<li>\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u9700\u8981\u5897\u52a0<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-13\">\n<li>\u4e26\u5217\u51e6\u7406\u3084\u30de\u30eb\u30c1\u30b3\u30a2\u51e6\u7406\u306e\u52b9\u7387\u5316<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-14\">\n<li>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/li>\n<\/div>\n\n\n<li>\u30e2\u30c0\u30f3\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u624b\u6cd5\u306e\u63a1\u7528<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-19\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\"><strong>\u91cd\u8981\u6027<\/strong><\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ol class=\"wp-block-list\"><div id=\"sgb-css-id-16\">\n<li>\u30b3\u30fc\u30c9\u306e\u7c21\u7d20\u5316\uff1a\u77ed\u304f\u7c21\u6f54\u306a\u8a18\u8ff0\u304c\u53ef\u80fd<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-17\">\n<li>\u53ef\u8aad\u6027\u306e\u5411\u4e0a\uff1a\u610f\u56f3\u304c\u660e\u78ba\u306b\u4f1d\u308f\u308b<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-18\">\n<li>Stream API\u3068\u306e\u76f8\u6027\uff1a\u30c7\u30fc\u30bf\u51e6\u7406\u304c\u52b9\u7387\u7684\u306b<\/li>\n<\/div>\n\n\n<li>\u4fdd\u5b88\u6027\u306e\u5411\u4e0a\uff1a\u30b3\u30fc\u30c9\u91cf\u306e\u524a\u6e1b\u306b\u3088\u308a\u3001\u30d0\u30b0\u306e\u53ef\u80fd\u6027\u3082\u4f4e\u4e0b<\/li>\n<\/ol>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-20\">\n<h3 class=\"wp-block-heading\" id=\"i-3\">1.2 \u5f93\u6765\u306e\u533f\u540d\u30af\u30e9\u30b9\u3068\u306e\u9055\u3044<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-21\">\n<p class=\"wp-block-paragraph\">\u5f93\u6765\u306e\u533f\u540d\u30af\u30e9\u30b9\u3068\u30e9\u30e0\u30c0\u5f0f\u3092\u6bd4\u8f03\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-22\">\n<p class=\"wp-block-paragraph\"><strong>\u5f93\u6765\u306e\u8a18\u8ff0\u65b9\u6cd5\uff08\u533f\u540d\u30af\u30e9\u30b9\uff09\uff1a<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30dc\u30bf\u30f3\u30af\u30ea\u30c3\u30af\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\nbutton.addActionListener(new ActionListener() {\n    @Override\n    public void actionPerformed(ActionEvent e) {\n        System.out.println(\"\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\");\n    }\n});\n\n\/\/ \u30ea\u30b9\u30c8\u306e\u30bd\u30fc\u30c8\u51e6\u7406\nCollections.sort(list, new Comparator&lt;String&gt;() {\n    @Override\n    public int compare(String s1, String s2) {\n        return s1.compareTo(s2);\n    }\n});<\/pre>\n\n\n<div id=\"sgb-css-id-23\">\n<p class=\"wp-block-paragraph\"><strong>\u30e9\u30e0\u30c0\u5f0f\u3067\u306e\u8a18\u8ff0\uff1a<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30dc\u30bf\u30f3\u30af\u30ea\u30c3\u30af\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\nbutton.addActionListener(e -&gt; System.out.println(\"\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\"));\n\n\/\/ \u30ea\u30b9\u30c8\u306e\u30bd\u30fc\u30c8\u51e6\u7406\nCollections.sort(list, (s1, s2) -&gt; s1.compareTo(s2));<\/pre>\n\n\n<div id=\"sgb-css-id-24\">\n<h3 class=\"wp-block-heading\" id=\"i-4\">1.3 \u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u672c\u69cb\u6587\u3068\u66f8\u304d\u65b9\u306e\u30eb\u30fc\u30eb<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-25\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u306f\u4ee5\u4e0b\u306e\u57fa\u672c\u69cb\u6587\u306b\u5f93\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(\u30d1\u30e9\u30e1\u30fc\u30bf) -&gt; { \u51e6\u7406\u5185\u5bb9 }<\/pre>\n\n\n<div id=\"sgb-css-id-26\">\n<p class=\"wp-block-paragraph\"><strong>\u57fa\u672c\u7684\u306a\u30eb\u30fc\u30eb\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-27\">\n<p class=\"wp-block-paragraph\">\u30001. \u30d1\u30e9\u30e1\u30fc\u30bf\u304c1\u3064\u306e\u5834\u5408<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u62ec\u5f27\u3092\u7701\u7565\u53ef\u80fd\nx -&gt; x * x<\/pre>\n\n\n<div id=\"sgb-css-id-28\">\n<p class=\"wp-block-paragraph\">\u30002. \u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u8907\u6570\u306e\u5834\u5408<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u62ec\u5f27\u304c\u5fc5\u8981\n(x, y) -&gt; x + y<\/pre>\n\n\n<div id=\"sgb-css-id-29\">\n<p class=\"wp-block-paragraph\">\u30003. \u51e6\u7406\u304c1\u884c\u306e\u5834\u5408<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6ce2\u62ec\u5f27\u3068return\u3092\u7701\u7565\u53ef\u80fd\n(x, y) -&gt; x + y<\/pre>\n\n\n<div id=\"sgb-css-id-30\">\n<p class=\"wp-block-paragraph\">\u30004. \u51e6\u7406\u304c\u8907\u6570\u884c\u306e\u5834\u5408<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(x, y) -&gt; {\n    System.out.println(\"\u8a08\u7b97\u958b\u59cb\");\n    return x + y;\n}<\/pre>\n\n\n<div id=\"sgb-css-id-31\">\n<p class=\"wp-block-paragraph\"><strong>\u578b\u63a8\u8ad6\u306e\u6d3b\u7528\uff1a<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\n(String s) -&gt; s.length()\n\n\/\/ \u578b\u63a8\u8ad6\u3092\u5229\u7528\uff08\u63a8\u5968\uff09\ns -&gt; s.length()<\/pre>\n\n\n<div id=\"sgb-css-id-32\">\n<p class=\"wp-block-paragraph\"><strong>\u3088\u304f\u4f7f\u7528\u3055\u308c\u308b\u5f62\u5f0f\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-2f3418b9-cd7f-46de-ac45-2dcb4b3d0075\"><div id=\"sgb-css-id-33\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u5f62\u5f0f<\/th><th>\u4f8b<\/th><th>\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>\u5f15\u6570\u306a\u3057<\/td><td>() -&gt; System.out.println(\u201cHello\u201d)<\/td><td>Runnable\u306a\u3069<\/td><\/tr><tr><td>\u5f15\u65701\u3064<\/td><td>x -&gt; x * 2<\/td><td>UnaryOperator\u306a\u3069<\/td><\/tr><tr><td>\u5f15\u65702\u3064<\/td><td>(x, y) -&gt; x + y<\/td><td>BinaryOperator\u306a\u3069<\/td><\/tr><tr><td>\u8907\u6570\u51e6\u7406<\/td><td>x -&gt; { x++; return x; }<\/td><td>\u8907\u96d1\u306a\u51e6\u7406<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-34\">\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u57fa\u672c\u3092\u62bc\u3055\u3048\u308b\u3053\u3068\u3067\u3001\u30e9\u30e0\u30c0\u5f0f\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u5177\u4f53\u7684\u306a\u4f7f\u7528\u4f8b\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-35\">\n<h2 class=\"wp-block-heading\" id=\"i-5\">\uff12\uff0e\u30e9\u30e0\u30c0\u5f0f\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3068\u5177\u4f53\u4f8b<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-36\">\n<h3 class=\"wp-block-heading\" id=\"i-6\">2.1 Comparator\u3067\u306e\u30bd\u30fc\u30c8\u51e6\u7406\u306e\u7c21\u7565\u5316<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-37\">\n<p class=\"wp-block-paragraph\">Comparator\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u305f\u30bd\u30fc\u30c8\u51e6\u7406\u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u6700\u3082\u4e00\u822c\u7684\u306a\u4f7f\u7528\u4f8b\u306e1\u3064\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-38\">\n<p class=\"wp-block-paragraph\"><strong>\u5f93\u6765\u306e\u65b9\u6cd5\u3068\u30e9\u30e0\u30c0\u5f0f\u306e\u6bd4\u8f03\uff1a<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b5\u30f3\u30d7\u30eb\u306ePerson\u30af\u30e9\u30b9\npublic class Person {\n    private String name;\n    private int age;\n\n    \/\/ \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001getter\u3001setter\u306f\u7701\u7565\n}\n\n\/\/ \u5f93\u6765\u306e\u65b9\u6cd5\nList&lt;Person&gt; people = new ArrayList&lt;&gt;();\nCollections.sort(people, new Comparator&lt;Person&gt;() {\n    @Override\n    public int compare(Person p1, Person p2) {\n        return p1.getAge() - p2.getAge();\n    }\n});\n\n\/\/ \u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u7528\n\/\/ \u5e74\u9f62\u3067\u30bd\u30fc\u30c8\nCollections.sort(people, (p1, p2) -&gt; p1.getAge() - p2.getAge());\n\n\/\/ \u540d\u524d\u3067\u30bd\u30fc\u30c8\nCollections.sort(people, (p1, p2) -&gt; p1.getName().compareTo(p2.getName()));\n\n\/\/ \u8907\u6570\u6761\u4ef6\u3067\u30bd\u30fc\u30c8\nCollections.sort(people, (p1, p2) -&gt; {\n    int nameCompare = p1.getName().compareTo(p2.getName());\n    return nameCompare != 0 ? nameCompare : p1.getAge() - p2.getAge();\n});<\/pre>\n\n\n<div id=\"sgb-css-id-39\">\n<h3 class=\"wp-block-heading\" id=\"i-7\">2.2 Runnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u306e\u5b9f\u88c5\u4f8b<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-40\">\n<p class=\"wp-block-paragraph\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u3088\u304f\u4f7f\u7528\u3055\u308c\u308bRunnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u5b9f\u88c5\u3082\u3001\u30e9\u30e0\u30c0\u5f0f\u3067\u7c21\u6f54\u306b\u66f8\u3051\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5f93\u6765\u306e\u65b9\u6cd5\nThread thread1 = new Thread(new Runnable() {\n    @Override\n    public void run() {\n        System.out.println(\"\u5f93\u6765\u306e\u65b9\u6cd5\u306b\u3088\u308b\u51e6\u7406\u5b9f\u884c\");\n    }\n});\n\n\/\/ \u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u7528\u3057\u305f\u65b9\u6cd5\nThread thread2 = new Thread(() -&gt; System.out.println(\"\u30e9\u30e0\u30c0\u5f0f\u306b\u3088\u308b\u51e6\u7406\u5b9f\u884c\"));\n\n\/\/ \u8907\u6570\u306e\u51e6\u7406\u3092\u542b\u3080\u5834\u5408\nThread thread3 = new Thread(() -&gt; {\n    System.out.println(\"\u51e6\u7406\u958b\u59cb\");\n    \/\/ \u91cd\u3044\u51e6\u7406\u3092\u60f3\u5b9a\n    try {\n        Thread.sleep(1000);\n    } catch (InterruptedException e) {\n        e.printStackTrace();\n    }\n    System.out.println(\"\u51e6\u7406\u5b8c\u4e86\");\n});\n\n\/\/ \u5b9f\u884c\u4f8b\nthread1.start();\nthread2.start();\nthread3.start();<\/pre>\n\n\n<div id=\"sgb-css-id-41\">\n<h3 class=\"wp-block-heading\" id=\"i-8\">2.3 ActionListener\u3067\u306e\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-42\">\n<p class=\"wp-block-paragraph\">GUI\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u3082\u3001\u30e9\u30e0\u30c0\u5f0f\u3067\u7c21\u6f54\u306b\u8a18\u8ff0\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import javax.swing.*;\nimport java.awt.event.*;\n\npublic class EventHandlingExample {\n    public static void main(String[] args) {\n        JFrame frame = new JFrame(\"\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\u306e\u4f8b\");\n        JButton button = new JButton(\"\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\");\n\n        \/\/ \u5f93\u6765\u306e\u65b9\u6cd5\n        button.addActionListener(new ActionListener() {\n            @Override\n            public void actionPerformed(ActionEvent e) {\n                System.out.println(\"\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\");\n            }\n        });\n\n        \/\/ \u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u7528\n        button.addActionListener(e -&gt; System.out.println(\"\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\"));\n\n        \/\/ \u3088\u308a\u8907\u96d1\u306a\u51e6\u7406\u306e\u4f8b\n        button.addActionListener(e -&gt; {\n            System.out.println(\"\u51e6\u7406\u958b\u59cb\");\n            \/\/ \u30dc\u30bf\u30f3\u306e\u72b6\u614b\u3092\u5909\u66f4\n            JButton sourceButton = (JButton)e.getSource();\n            sourceButton.setEnabled(false);\n            sourceButton.setText(\"\u51e6\u7406\u4e2d...\");\n\n            \/\/ \u4e00\u5b9a\u6642\u9593\u5f8c\u306b\u5143\u306b\u623b\u3059\n            new Timer(2000, evt -&gt; {\n                sourceButton.setEnabled(true);\n                sourceButton.setText(\"\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\");\n            }).start();\n        });\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-43\">\n<p class=\"wp-block-paragraph\"><strong>\u5b9f\u8df5\u7684\u306a\u30dd\u30a4\u30f3\u30c8\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-5e5032fb-f6dc-4894-8a6d-79845648a7eb\"><div id=\"sgb-css-id-44\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u4f7f\u7528\u5834\u9762<\/th><th>\u30e9\u30e0\u30c0\u5f0f\u306e\u5229\u70b9<\/th><th>\u6ce8\u610f\u70b9<\/th><\/tr><\/thead><tbody><tr><td>\u30bd\u30fc\u30c8\u51e6\u7406<\/td><td>\u30b3\u30fc\u30c9\u306e\u7c21\u6f54\u3055\u3001\u53ef\u8aad\u6027\u5411\u4e0a<\/td><td>\u8907\u96d1\u306a\u6bd4\u8f03\u30ed\u30b8\u30c3\u30af\u306f\u5206\u96e2\u3092\u691c\u8a0e<\/td><\/tr><tr><td>\u30b9\u30ec\u30c3\u30c9\u51e6\u7406<\/td><td>\u7c21\u6f54\u306a\u8a18\u8ff0\u3001\u5373\u5ea7\u306e\u7406\u89e3\u304c\u53ef\u80fd<\/td><td>\u4f8b\u5916\u51e6\u7406\u306e\u9069\u5207\u306a\u5b9f\u88c5\u304c\u5fc5\u8981<\/td><\/tr><tr><td>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406<\/td><td>\u30b3\u30fc\u30c9\u91cf\u306e\u524a\u6e1b\u3001\u898b\u901a\u3057\u306e\u826f\u3055<\/td><td>\u8907\u96d1\u306a\u51e6\u7406\u306f\u5225\u30e1\u30bd\u30c3\u30c9\u3078\u306e\u5207\u308a\u51fa\u3057\u3092\u63a8\u5968<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-45\">\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u4f8b\u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u304c\u5b9f\u969b\u306e\u30b3\u30fc\u30c9\u3067\u3069\u306e\u3088\u3046\u306b\u4f7f\u7528\u3055\u308c\u3001\u3069\u306e\u3088\u3046\u306a\u5229\u70b9\u3092\u3082\u305f\u3089\u3059\u304b\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u4f7f\u7528\u65b9\u6cd5\u3068\u3057\u3066Stream API\u3068\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-46\">\n<h2 class=\"wp-block-heading\" id=\"i-9\">\uff13\uff0eStreamAPI\u3068\u7d44\u307f\u5408\u308f\u305b\u305f\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u6cd5<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-47\">\n<h3 class=\"wp-block-heading\" id=\"i-10\">3.1 filter()\u3067\u306e\u30c7\u30fc\u30bf\u7d5e\u308a\u8fbc\u307f<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-48\">\n<p class=\"wp-block-paragraph\">Stream API\u306e<code>filter()<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5185\u306e\u30c7\u30fc\u30bf\u3092\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u7d5e\u308a\u8fbc\u3080\u969b\u306b\u975e\u5e38\u306b\u52b9\u679c\u7684\u3067\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b5\u30f3\u30d7\u30eb\u306eProduct\u30af\u30e9\u30b9\npublic class Product {\n    private String name;\n    private int price;\n    private String category;\n\n    public Product(String name, int price, String category) {\n        this.name = name;\n        this.price = price;\n        this.category = category;\n    }\n\n    \/\/ getter, setter\u306f\u7701\u7565\n}\n\n\/\/ \u5546\u54c1\u30ea\u30b9\u30c8\u306e\u4f5c\u6210\nList&lt;Product&gt; products = Arrays.asList(\n    new Product(\"\u30ce\u30fc\u30c8PC\", 80000, \"\u96fb\u5316\u88fd\u54c1\"),\n    new Product(\"\u30b3\u30fc\u30d2\u30fc\u30e1\u30fc\u30ab\u30fc\", 5000, \"\u30ad\u30c3\u30c1\u30f3\"),\n    new Product(\"\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\", 60000, \"\u96fb\u5316\u88fd\u54c1\"),\n    new Product(\"\u30c7\u30b9\u30af\u30c1\u30a7\u30a2\", 12000, \"\u5bb6\u5177\")\n);\n\n\/\/ \u5358\u4e00\u6761\u4ef6\u3067\u306e\u7d5e\u308a\u8fbc\u307f\nList&lt;Product&gt; expensiveProducts = products.stream()\n    .filter(p -&gt; p.getPrice() &gt; 50000)\n    .collect(Collectors.toList());\n\n\/\/ \u8907\u6570\u6761\u4ef6\u3067\u306e\u7d5e\u308a\u8fbc\u307f\nList&lt;Product&gt; targetProducts = products.stream()\n    .filter(p -&gt; p.getPrice() &gt; 10000)\n    .filter(p -&gt; p.getCategory().equals(\"\u96fb\u5316\u88fd\u54c1\"))\n    .collect(Collectors.toList());\n\n\/\/ \u3088\u308a\u8907\u96d1\u306a\u6761\u4ef6\u3067\u306e\u7d5e\u308a\u8fbc\u307f\nList&lt;Product&gt; customProducts = products.stream()\n    .filter(p -&gt; {\n        boolean isPriceInRange = p.getPrice() &gt;= 5000 &amp;&amp; p.getPrice() &lt;= 70000;\n        boolean isValidCategory = Arrays.asList(\"\u96fb\u5316\u88fd\u54c1\", \"\u5bb6\u5177\").contains(p.getCategory());\n        return isPriceInRange &amp;&amp; isValidCategory;\n    })\n    .collect(Collectors.toList());<\/pre>\n\n\n<div id=\"sgb-css-id-49\">\n<h3 class=\"wp-block-heading\" id=\"i-11\">3.2 map()\u3067\u306e\u8981\u7d20\u306e\u5909\u63db<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-50\">\n<p class=\"wp-block-paragraph\"><code>map()<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30b9\u30c8\u30ea\u30fc\u30e0\u5185\u306e\u8981\u7d20\u3092\u5225\u306e\u5f62\u5f0f\u306b\u5909\u63db\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5546\u54c1\u540d\u306e\u30ea\u30b9\u30c8\u3092\u53d6\u5f97\nList&lt;String&gt; productNames = products.stream()\n    .map(Product::getName)  \/\/ \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u4f7f\u7528\n    .collect(Collectors.toList());\n\n\/\/ \u4fa1\u683c\u306b\u6d88\u8cbb\u7a0e\u3092\u8ffd\u52a0\u3057\u305f\u65b0\u3057\u3044Product\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\nList&lt;Product&gt; productsWithTax = products.stream()\n    .map(p -&gt; new Product(\n        p.getName(),\n        (int)(p.getPrice() * 1.1),  \/\/ 10%\u306e\u6d88\u8cbb\u7a0e\u3092\u8ffd\u52a0\n        p.getCategory()\n    ))\n    .collect(Collectors.toList());\n\n\/\/ \u8907\u6570\u306e\u5909\u63db\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\nList&lt;String&gt; formattedProducts = products.stream()\n    .map(p -&gt; {\n        String priceString = String.format(\"%,d\u5186\", p.getPrice());\n        return String.format(\"%s (%s) - %s\", \n            p.getName(), p.getCategory(), priceString);\n    })\n    .collect(Collectors.toList());<\/pre>\n\n\n<div id=\"sgb-css-id-51\">\n<h3 class=\"wp-block-heading\" id=\"i-12\">3.3 collect()\u3092\u4f7f\u3063\u305f\u30c7\u30fc\u30bf\u306e\u96c6\u8a08<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-52\">\n<p class=\"wp-block-paragraph\"><code>collect()<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u69d8\u3005\u306a\u65b9\u6cd5\u3067\u30c7\u30fc\u30bf\u3092\u96c6\u8a08\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ab\u30c6\u30b4\u30ea\u3054\u3068\u306e\u5546\u54c1\u6570\u3092\u30ab\u30a6\u30f3\u30c8\nMap&lt;String, Long&gt; categoryCount = products.stream()\n    .collect(Collectors.groupingBy(\n        Product::getCategory,\n        Collectors.counting()\n    ));\n\n\/\/ \u30ab\u30c6\u30b4\u30ea\u3054\u3068\u306e\u5e73\u5747\u4fa1\u683c\u3092\u8a08\u7b97\nMap&lt;String, Double&gt; avgPriceByCategory = products.stream()\n    .collect(Collectors.groupingBy(\n        Product::getCategory,\n        Collectors.averagingInt(Product::getPrice)\n    ));\n\n\/\/ \u3088\u308a\u8907\u96d1\u306a\u96c6\u8a08\u4f8b\nMap&lt;String, Map&lt;String, List&lt;Product&gt;&gt;&gt; complexGrouping = products.stream()\n    .collect(Collectors.groupingBy(\n        Product::getCategory,\n        Collectors.groupingBy(p -&gt; {\n            if (p.getPrice() &lt; 10000) return \"\u4f4e\u4fa1\u683c\";\n            if (p.getPrice() &lt; 50000) return \"\u4e2d\u4fa1\u683c\";\n            return \"\u9ad8\u4fa1\u683c\";\n        })\n    ));\n\n\/\/ \u7d71\u8a08\u60c5\u5831\u306e\u53d6\u5f97\nDoubleSummaryStatistics priceStats = products.stream()\n    .collect(Collectors.summarizingDouble(Product::getPrice));\n\nSystem.out.println(\"\u4fa1\u683c\u306e\u7d71\u8a08:\");\nSystem.out.println(\"\u5e73\u5747: \" + priceStats.getAverage());\nSystem.out.println(\"\u6700\u5927: \" + priceStats.getMax());\nSystem.out.println(\"\u6700\u5c0f: \" + priceStats.getMin());\nSystem.out.println(\"\u5408\u8a08: \" + priceStats.getSum());<\/pre>\n\n\n<div id=\"sgb-css-id-53\">\n<p class=\"wp-block-paragraph\"><strong>\u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u4e00\u89a7\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-cae136f7-56b3-4ea9-a188-f01261c2c1a8\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u64cd\u4f5c<\/th><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u4e00\u822c\u7684\u306a\u4f7f\u7528\u4f8b<\/th><\/tr><\/thead><tbody><tr><td>\u7d5e\u308a\u8fbc\u307f<\/td><td>filter()<\/td><td>\u30c7\u30fc\u30bf\u306e\u691c\u7d22\u3001\u6761\u4ef6\u306b\u5408\u3046\u8981\u7d20\u306e\u62bd\u51fa<\/td><\/tr><tr><td>\u5909\u63db<\/td><td>map()<\/td><td>DTO\u3078\u306e\u5909\u63db\u3001\u30c7\u30fc\u30bf\u5f62\u5f0f\u306e\u5909\u66f4<\/td><\/tr><tr><td>\u96c6\u8a08<\/td><td>collect()<\/td><td>\u30b0\u30eb\u30fc\u30d7\u5316\u3001\u7d71\u8a08\u60c5\u5831\u306e\u53ce\u96c6<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n<div id=\"sgb-css-id-54\">\n<p class=\"wp-block-paragraph\"><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u95a2\u3059\u308b\u6ce8\u610f\u70b9\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-57\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\"><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u95a2\u3059\u308b\u6ce8\u610f\u70b9<\/strong><\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ol class=\"wp-block-list\"><div id=\"sgb-css-id-55\">\n<li>\u5927\u91cf\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3059\u308b\u5834\u5408\u306f<code>parallel()<\/code>\u306e\u4f7f\u7528\u3092\u691c\u8a0e<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-56\">\n<li>\u4e2d\u9593\u64cd\u4f5c\u306f\u9045\u5ef6\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u5fc5\u8981\u306a\u64cd\u4f5c\u306e\u307f\u3092\u884c\u3046<\/li>\n<\/div>\n\n\n<li>\u8907\u96d1\u306a\u51e6\u7406\u306f\u5225\u30e1\u30bd\u30c3\u30c9\u306b\u5206\u96e2\u3057\u3066\u53ef\u8aad\u6027\u3092\u78ba\u4fdd<\/li>\n<\/ol>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-58\">\n<p class=\"wp-block-paragraph\">\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u5b9f\u8df5\u7684\u306a\u30e9\u30e0\u30c0\u5f0f\u306e\u30d1\u30bf\u30fc\u30f3\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-59\">\n<h2 class=\"wp-block-heading\" id=\"i-13\">\uff14\uff0e\u73fe\u5834\u3067\u4f7f\u3048\u308b\u5b9f\u8df5\u7684\u306a\u30e9\u30e0\u30c0\u5f0f\u30d1\u30bf\u30fc\u30f310\u9078<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-60\">\n<h3 class=\"wp-block-heading\" id=\"i-14\">4.1 Optional\u578b\u3068\u306e\u7d44\u307f\u5408\u308f\u305b\u306b\u3088\u308bNull\u30c1\u30a7\u30c3\u30af\u306e\u7c21\u7565\u5316<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-61\">\n<p class=\"wp-block-paragraph\">Optional\u578b\u3068\u30e9\u30e0\u30c0\u5f0f\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5b89\u5168\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9\u304c\u66f8\u3051\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u6271\u3046\u30af\u30e9\u30b9\u306e\u4f8b\npublic class User {\n    private String name;\n    private String email;\n    private Address address;\n\n    \/\/ getter, setter\u306f\u7701\u7565\n}\n\npublic class Address {\n    private String city;\n    private String street;\n\n    \/\/ getter, setter\u306f\u7701\u7565\n}\n\n\/\/ \u30d1\u30bf\u30fc\u30f31: \u5b89\u5168\u306anull\u30c1\u30a7\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\nOptional.ofNullable(user)\n    .map(User::getAddress)\n    .map(Address::getCity)\n    .orElse(\"\u4f4f\u6240\u4e0d\u660e\");\n\n\/\/ \u30d1\u30bf\u30fc\u30f32: \u6761\u4ef6\u4ed8\u304d\u51e6\u7406\nOptional.ofNullable(user)\n    .filter(u -&gt; u.getEmail() != null)\n    .ifPresent(u -&gt; sendEmail(u.getEmail()));\n\n\/\/ \u30d1\u30bf\u30fc\u30f33: \u4ee3\u66ff\u5024\u306e\u63d0\u4f9b\nString userCity = Optional.ofNullable(user)\n    .map(User::getAddress)\n    .map(Address::getCity)\n    .orElseGet(() -&gt; {\n        log.warn(\"\u4f4f\u6240\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\");\n        return \"\u672a\u8a2d\u5b9a\";\n    });\n\n\/\/ \u30d1\u30bf\u30fc\u30f34: \u4f8b\u5916\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\nUser validUser = Optional.ofNullable(user)\n    .orElseThrow(() -&gt; new UserNotFoundException(\"\u30e6\u30fc\u30b6\u30fc\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\"));<\/pre>\n\n\n<div id=\"sgb-css-id-62\">\n<h3 class=\"wp-block-heading\" id=\"i-15\">4.2 \u4e26\u5217\u51e6\u7406\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-63\">\n<p class=\"wp-block-paragraph\">\u4e26\u5217\u51e6\u7406\u306b\u304a\u3044\u3066\u30e9\u30e0\u30c0\u5f0f\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u7c21\u6f54\u3067\u52b9\u7387\u7684\u306a\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30bf\u30fc\u30f35: \u4e26\u5217\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\nList&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);\nint sum = numbers.parallelStream()\n    .filter(n -&gt; n % 2 == 0)\n    .mapToInt(n -&gt; {\n        \/\/ \u91cd\u3044\u51e6\u7406\u3092\u60f3\u5b9a\n        try {\n            Thread.sleep(100);\n        } catch (InterruptedException e) {\n            Thread.currentThread().interrupt();\n        }\n        return n * 2;\n    })\n    .sum();\n\n\/\/ \u30d1\u30bf\u30fc\u30f36: CompletableFuture\u3067\u306e\u975e\u540c\u671f\u51e6\u7406\nCompletableFuture&lt;String&gt; future = CompletableFuture\n    .supplyAsync(() -&gt; \"\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\")\n    .thenApplyAsync(data -&gt; {\n        \/\/ \u30c7\u30fc\u30bf\u306e\u52a0\u5de5\u51e6\u7406\n        return data + \"\u306e\u51e6\u7406\u5b8c\u4e86\";\n    })\n    .thenApply(result -&gt; {\n        \/\/ \u6700\u7d42\u7684\u306a\u6574\u5f62\n        return \"[\" + result + \"]\";\n    });\n\n\/\/ \u30d1\u30bf\u30fc\u30f37: \u4e26\u5217\u30bf\u30b9\u30af\u306e\u5236\u5fa1\nExecutorService executor = Executors.newFixedThreadPool(3);\nList&lt;Future&lt;String&gt;&gt; futures = tasks.stream()\n    .map(task -&gt; executor.submit(() -&gt; processTask(task)))\n    .collect(Collectors.toList());<\/pre>\n\n\n<div id=\"sgb-css-id-64\">\n<h3 class=\"wp-block-heading\" id=\"i-16\">4.3 \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u4f7f\u3063\u305f\u53ef\u8aad\u6027\u306e\u5411\u4e0a<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-65\">\n<p class=\"wp-block-paragraph\">\u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u610f\u56f3\u304c\u3088\u308a\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30bf\u30fc\u30f38: \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u53c2\u7167\nList&lt;String&gt; names = Arrays.asList(\"\u592a\u90ce\", \"\u82b1\u5b50\", \"\u6b21\u90ce\");\nList&lt;User&gt; users = names.stream()\n    .map(User::new)  \/\/ \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u53c2\u7167\n    .collect(Collectors.toList());\n\n\/\/ \u30d1\u30bf\u30fc\u30f39: \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30e1\u30bd\u30c3\u30c9\u53c2\u7167\nList&lt;String&gt; sortedNames = names.stream()\n    .sorted(String::compareToIgnoreCase)  \/\/ \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\n    .collect(Collectors.toList());\n\n\/\/ \u30d1\u30bf\u30fc\u30f310: \u9759\u7684\u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3068\u30ab\u30b9\u30bf\u30e0\u30b3\u30ec\u30af\u30bf\npublic class UserCollector {\n    public static User combineUsers(User user1, User user2) {\n        \/\/ \u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u30de\u30fc\u30b8\u30ed\u30b8\u30c3\u30af\n        return new User(user1.getName() + \"&amp;\" + user2.getName());\n    }\n}\n\nUser combinedUser = users.stream()\n    .reduce(UserCollector::combineUsers)\n    .orElseGet(User::new);<\/pre>\n\n\n<div id=\"sgb-css-id-66\">\n<p class=\"wp-block-paragraph\"><strong>\u5b9f\u8df5\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u306e\u4f7f\u3044\u5206\u3051\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-0c77be1f-ba9d-4a21-ba1c-222fe5d054f8\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30d1\u30bf\u30fc\u30f3<\/th><th>\u4f7f\u7528\u5834\u9762<\/th><th>\u30e1\u30ea\u30c3\u30c8<\/th><th>\u6ce8\u610f\u70b9<\/th><\/tr><\/thead><tbody><tr><td>Optional\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/td><td>null\u5b89\u5168\u6027\u304c\u5fc5\u8981\u306a\u5834\u5408<\/td><td>NullPointerException\u306e\u9632\u6b62<\/td><td>\u904e\u5ea6\u306a\u4f7f\u7528\u3092\u907f\u3051\u308b<\/td><\/tr><tr><td>\u4e26\u5217\u51e6\u7406<\/td><td>\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u6642<\/td><td>\u51e6\u7406\u901f\u5ea6\u306e\u5411\u4e0a<\/td><td>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u6027\u306b\u6ce8\u610f<\/td><\/tr><tr><td>\u30e1\u30bd\u30c3\u30c9\u53c2\u7167<\/td><td>\u65e2\u5b58\u30e1\u30bd\u30c3\u30c9\u306e\u518d\u5229\u7528\u6642<\/td><td>\u30b3\u30fc\u30c9\u306e\u7c21\u6f54\u3055\u5411\u4e0a<\/td><td>\u9069\u5207\u306a\u5834\u9762\u3067\u306e\u4f7f\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n<div id=\"sgb-css-id-67\">\n<p class=\"wp-block-paragraph\"><strong>\u30d1\u30bf\u30fc\u30f3\u9078\u629e\u306e\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-68\">\n<p class=\"wp-block-paragraph\"><strong>1. \u53ef\u8aad\u6027\u512a\u5148<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-69\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u5358\u7d14\u306a\u51e6\u7406\u306b\u306f\u5f93\u6765\u306e\u65b9\u6cd5\u3082\u691c\u8a0e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-70\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c1\u30fc\u30e0\u306e\u7406\u89e3\u5ea6\u306b\u5408\u308f\u305b\u3066\u5c0e\u5165<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-71\">\n<p class=\"wp-block-paragraph\"><strong>2. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8003\u616e<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-72\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u4e26\u5217\u51e6\u7406\u306f\u9069\u5207\u306a\u30c7\u30fc\u30bf\u30b5\u30a4\u30ba\u3067<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-73\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306b\u3082\u6ce8\u610f<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-74\">\n<p class=\"wp-block-paragraph\"><strong>3. \u4fdd\u5b88\u6027\u91cd\u8996<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-75\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c6\u30b9\u30c8\u5bb9\u6613\u6027\u3092\u78ba\u4fdd<\/p>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c7\u30d0\u30c3\u30b0\u306e\u3057\u3084\u3059\u3055\u3092\u8003\u616e<\/p>\n\n\n<div id=\"sgb-css-id-76\">\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u9069\u6750\u9069\u6240\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-77\">\n<h2 class=\"wp-block-heading\" id=\"i-17\">\uff15. \u30e9\u30e0\u30c0\u5f0f\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-78\">\n<h3 class=\"wp-block-heading\" id=\"i-18\">5.1 \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306e\u6ce8\u610f\u70b9<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-79\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u4f7f\u7528\u6642\u306e\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306f\u3001\u4e3b\u306b\u4e0d\u9069\u5207\u306a\u30af\u30ed\u30fc\u30b8\u30e3\u30fc\u306e\u4f7f\u7528\u306b\u3088\u3063\u3066\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class MemoryLeakExample {\n    private List&lt;Heavy&gt; heavyObjects = new ArrayList&lt;&gt;();\n\n    \/\/ \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u304c\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u5b9f\u88c5\n    public void badImplementation() {\n        Heavy heavy = new Heavy();  \/\/ \u91cd\u3044\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n        heavyObjects.add(heavy);\n\n        ExecutorService executor = Executors.newSingleThreadExecutor();\n        executor.submit(() -&gt; {\n            \/\/ heavy\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u53c2\u7167\u304c\u6b8b\u308a\u7d9a\u3051\u308b\n            System.out.println(heavy.toString());\n        });\n    }\n\n    \/\/ \u6539\u5584\u3055\u308c\u305f\u5b9f\u88c5\n    public void goodImplementation() {\n        Heavy heavy = new Heavy();\n        heavyObjects.add(heavy);\n\n        \/\/ \u5fc5\u8981\u306a\u60c5\u5831\u3060\u3051\u3092\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u306b\u30b3\u30d4\u30fc\n        final String heavyInfo = heavy.toString();\n        ExecutorService executor = Executors.newSingleThreadExecutor();\n        executor.submit(() -&gt; {\n            System.out.println(heavyInfo);\n        });\n    }\n\n    \/\/ \u5916\u90e8\u5909\u6570\u306e\u53c2\u7167\u3092\u9069\u5207\u306b\u7ba1\u7406\n    public void handleExternalReferences() {\n        List&lt;Runnable&gt; tasks = new ArrayList&lt;&gt;();\n\n        for (int i = 0; i &lt; 10; i++) {\n            final int index = i;  \/\/ \u5024\u306e\u30b3\u30d4\u30fc\u3092\u4f5c\u6210\n            tasks.add(() -&gt; System.out.println(\"Task \" + index));\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-83\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\"><strong>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/strong><\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ol class=\"wp-block-list\"><div id=\"sgb-css-id-80\">\n<li>\u30e9\u30e0\u30c0\u5f0f\u5185\u3067\u306e\u5916\u90e8\u5909\u6570\u306e\u53c2\u7167\u3092\u6700\u5c0f\u9650\u306b<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-81\">\n<li>\u5fc5\u8981\u306a\u60c5\u5831\u3060\u3051\u3092\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u306b\u30b3\u30d4\u30fc<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-82\">\n<li>\u30af\u30ed\u30fc\u30b8\u30e3\u30fc\u304c\u4fdd\u6301\u3059\u308b\u53c2\u7167\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u3092\u610f\u8b58<\/li>\n<\/div>\n\n\n<li>\u975e\u540c\u671f\u51e6\u7406\u3067\u306e\u53c2\u7167\u7ba1\u7406\u306b\u7279\u306b\u6ce8\u610f<\/li>\n<\/ol>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-84\">\n<h3 class=\"wp-block-heading\" id=\"i-19\">5.2 \u30c7\u30d0\u30c3\u30b0\u6642\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-85\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u306e\u30c7\u30d0\u30c3\u30b0\u306b\u306f\u7279\u6709\u306e\u8ab2\u984c\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u624b\u6cd5\u3067\u52b9\u7387\u7684\u306a\u30c7\u30d0\u30c3\u30b0\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class DebugExample {\n    public void debuggingTechniques() {\n        List&lt;String&gt; items = Arrays.asList(\"item1\", \"item2\", \"item3\");\n\n        \/\/ \u30c7\u30d0\u30c3\u30b0\u7528\u306e\u30ed\u30b0\u51fa\u529b\u3092\u542b\u3080\u30e9\u30e0\u30c0\u5f0f\n        items.stream()\n            .peek(item -&gt; System.out.println(\"Processing: \" + item))\n            .map(item -&gt; {\n                try {\n                    return processItem(item);\n                } catch (Exception e) {\n                    System.err.println(\"Error processing \" + item + \": \" + e.getMessage());\n                    return \"ERROR\";\n                }\n            })\n            .forEach(System.out::println);\n    }\n\n    \/\/ \u30e9\u30e0\u30c0\u5f0f\u3092\u5206\u5272\u3057\u3066\u30c7\u30d0\u30c3\u30b0\u3057\u3084\u3059\u304f\u3059\u308b\n    public void separatedLambdas() {\n        Function&lt;String, Integer&gt; parser = str -&gt; {\n            try {\n                return Integer.parseInt(str);\n            } catch (NumberFormatException e) {\n                System.err.println(\"Parse error: \" + str);\n                return -1;\n            }\n        };\n\n        Consumer&lt;Integer&gt; processor = num -&gt; {\n            if (num &lt; 0) {\n                System.out.println(\"Invalid number detected\");\n            } else {\n                System.out.println(\"Processing: \" + num);\n            }\n        };\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-86\">\n<p class=\"wp-block-paragraph\"><strong>\u52b9\u679c\u7684\u306a\u30c7\u30d0\u30c3\u30b0\u306e\u305f\u3081\u306e\u30c6\u30af\u30cb\u30c3\u30af\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-bee30882-8bf2-4b42-9fc1-72022ef10863\"><div id=\"sgb-css-id-87\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30c6\u30af\u30cb\u30c3\u30af<\/th><th>\u4f7f\u7528\u65b9\u6cd5<\/th><th>\u30e1\u30ea\u30c3\u30c8<\/th><\/tr><\/thead><tbody><tr><td>peek()\u306e\u6d3b\u7528<\/td><td>\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u306e\u9014\u4e2d\u7d4c\u904e\u78ba\u8a8d<\/td><td>\u51e6\u7406\u30d5\u30ed\u30fc\u306e\u53ef\u8996\u5316<\/td><\/tr><tr><td>try-catch<\/td><td>\u4f8b\u5916\u767a\u751f\u7b87\u6240\u306e\u7279\u5b9a<\/td><td>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u660e\u78ba\u5316<\/td><\/tr><tr><td>\u30e9\u30e0\u30c0\u5f0f\u306e\u5206\u5272<\/td><td>\u8907\u96d1\u306a\u51e6\u7406\u3092\u5206\u89e3<\/td><td>\u30c7\u30d0\u30c3\u30b0\u30dd\u30a4\u30f3\u30c8\u306e\u8a2d\u5b9a\u304c\u5bb9\u6613<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-88\">\n<h3 class=\"wp-block-heading\" id=\"i-20\">5.3 \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u65b9\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-89\">\n<p class=\"wp-block-paragraph\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6700\u9069\u5316\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u9069\u5207\u306a\u5b9f\u88c5\u65b9\u6cd5\u306e\u9078\u629e\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class PerformanceExample {\n    \/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\n    public void performanceOptimization() {\n        List&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3, 4, 5);\n\n        \/\/ \u4e0d\u9069\u5207\u306a\u5b9f\u88c5\uff08\u8907\u6570\u56de\u306e\u30b9\u30c8\u30ea\u30fc\u30e0\u751f\u6210\uff09\n        int badSum = numbers.stream().filter(n -&gt; n % 2 == 0)\n                          .mapToInt(Integer::intValue)\n                          .sum();\n\n        \/\/ \u6700\u9069\u5316\u3055\u308c\u305f\u5b9f\u88c5\uff08\u5358\u4e00\u30b9\u30c8\u30ea\u30fc\u30e0\uff09\n        int goodSum = numbers.stream()\n                           .mapToInt(Integer::intValue)\n                           .filter(n -&gt; n % 2 == 0)\n                           .sum();\n\n        \/\/ \u4e26\u5217\u51e6\u7406\u306e\u9069\u5207\u306a\u4f7f\u7528\n        List&lt;Heavy&gt; heavyObjects = getHeavyObjects();\n        long count = heavyObjects.parallelStream()\n                               .filter(h -&gt; h.getSize() &gt; 1000)\n                               .count();\n    }\n\n    \/\/ \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u306e\u6d3b\u7528\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\n    public void methodReferenceOptimization() {\n        List&lt;String&gt; words = Arrays.asList(\"apple\", \"banana\", \"cherry\");\n\n        \/\/ \u30e9\u30e0\u30c0\u5f0f\u3092\u4f7f\u7528\n        List&lt;Integer&gt; lengths1 = words.stream()\n                                    .map(s -&gt; s.length())\n                                    .collect(Collectors.toList());\n\n        \/\/ \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u4f7f\u7528\uff08\u3088\u308a\u52b9\u7387\u7684\uff09\n        List&lt;Integer&gt; lengths2 = words.stream()\n                                    .map(String::length)\n                                    .collect(Collectors.toList());\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-90\">\n<p class=\"wp-block-paragraph\"><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-91\">\n<p class=\"wp-block-paragraph\"><strong>1. \u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u306e\u6700\u9069\u5316<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-92\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u4e2d\u9593\u64cd\u4f5c\u306e\u9806\u5e8f\u3092\u9069\u5207\u306b\u8a2d\u5b9a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-93\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u4e0d\u8981\u306a\u30b9\u30c8\u30ea\u30fc\u30e0\u751f\u6210\u3092\u907f\u3051\u308b<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-94\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u9069\u5207\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u9078\u629e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-95\">\n<p class=\"wp-block-paragraph\"><strong>2. \u4e26\u5217\u51e6\u7406\u306e\u9069\u5207\u306a\u4f7f\u7528<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-96\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c7\u30fc\u30bf\u30b5\u30a4\u30ba\u306b\u5fdc\u3058\u3066\u4e26\u5217\u5316\u3092\u5224\u65ad<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-97\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u6027\u306e\u78ba\u4fdd<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-98\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u8003\u616e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-99\">\n<p class=\"wp-block-paragraph\"><strong>3. \u30e1\u30e2\u30ea\u4f7f\u7528\u306e\u6700\u9069\u5316<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-100\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u4e0d\u8981\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u751f\u6210\u3092\u907f\u3051\u308b<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-101\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u9069\u5207\u306a\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-102\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf GC\u3078\u306e\u5f71\u97ff\u3092\u8003\u616e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-103\">\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-104\">\n<h2 class=\"wp-block-heading\" id=\"i-21\">\uff16\uff0e\u767a\u5c55\u7684\u306a\u30e9\u30e0\u30c0\u5f0f\u306e\u4f7f\u3044\u65b9<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-105\">\n<h3 class=\"wp-block-heading\" id=\"i-22\">6.1 \u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4f5c\u6210<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-106\">\n<p class=\"wp-block-paragraph\">\u72ec\u81ea\u306e\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u306b\u7279\u5316\u3057\u305f\u67d4\u8edf\u306a\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u5b9a\u7fa9\n@FunctionalInterface\npublic interface DataProcessor&lt;T, R&gt; {\n    R process(T data, ProcessingContext context);\n\n    \/\/ \u30c7\u30d5\u30a9\u30eb\u30c8\u30e1\u30bd\u30c3\u30c9\u306e\u8ffd\u52a0\n    default DataProcessor&lt;T, R&gt; andThen(DataProcessor&lt;R, R&gt; after) {\n        return (data, context) -&gt; after.process(process(data, context), context);\n    }\n}\n\n\/\/ \u51e6\u7406\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30af\u30e9\u30b9\npublic class ProcessingContext {\n    private Map&lt;String, Object&gt; attributes = new HashMap&lt;&gt;();\n\n    public void setAttribute(String key, Object value) {\n        attributes.put(key, value);\n    }\n\n    public Object getAttribute(String key) {\n        return attributes.get(key);\n    }\n}\n\n\/\/ \u5b9f\u88c5\u4f8b\npublic class CustomProcessorExample {\n    public void demonstrateCustomProcessor() {\n        \/\/ \u30c7\u30fc\u30bf\u51e6\u7406\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u69cb\u7bc9\n        DataProcessor&lt;String, String&gt; upperCaseProcessor = \n            (data, context) -&gt; data.toUpperCase();\n\n        DataProcessor&lt;String, Integer&gt; lengthProcessor = \n            (data, context) -&gt; {\n                context.setAttribute(\"originalString\", data);\n                return data.length();\n            };\n\n        \/\/ \u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u4f7f\u7528\n        ProcessingContext context = new ProcessingContext();\n        String input = \"Hello, World!\";\n\n        String upperCase = upperCaseProcessor.process(input, context);\n        Integer length = lengthProcessor.process(upperCase, context);\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-107\">\n<h3 class=\"wp-block-heading\" id=\"i-23\">6.2 \u8907\u6570\u306e\u30e9\u30e0\u30c0\u5f0f\u306e\u7d44\u307f\u5408\u308f\u305b\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-108\">\n<p class=\"wp-block-paragraph\">\u8907\u6570\u306e\u30e9\u30e0\u30c0\u5f0f\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u67d4\u8edf\u3067\u518d\u5229\u7528\u53ef\u80fd\u306a\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class LambdaCombination {\n    \/\/ \u6c4e\u7528\u7684\u306a\u691c\u8a3c\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\n    @FunctionalInterface\n    interface Validator&lt;T&gt; {\n        boolean validate(T value);\n\n        default Validator&lt;T&gt; and(Validator&lt;T&gt; other) {\n            return value -&gt; validate(value) &amp;&amp; other.validate(value);\n        }\n\n        default Validator&lt;T&gt; or(Validator&lt;T&gt; other) {\n            return value -&gt; validate(value) || other.validate(value);\n        }\n    }\n\n    public void demonstrateCombination() {\n        \/\/ \u57fa\u672c\u7684\u306a\u30d0\u30ea\u30c7\u30fc\u30bf\u306e\u5b9a\u7fa9\n        Validator&lt;String&gt; notEmpty = \n            str -&gt; str != null &amp;&amp; !str.trim().isEmpty();\n\n        Validator&lt;String&gt; validLength = \n            str -&gt; str.length() &gt;= 5 &amp;&amp; str.length() &lt;= 50;\n\n        Validator&lt;String&gt; containsNumber = \n            str -&gt; str.matches(\".*\\\\d.*\");\n\n        \/\/ \u30d0\u30ea\u30c7\u30fc\u30bf\u306e\u7d44\u307f\u5408\u308f\u305b\n        Validator&lt;String&gt; passwordValidator = \n            notEmpty\n                .and(validLength)\n                .and(containsNumber);\n\n        \/\/ \u691c\u8a3c\u306e\u5b9f\u884c\n        String password = \"Password123\";\n        boolean isValid = passwordValidator.validate(password);\n    }\n\n    \/\/ \u8907\u6570\u306e\u5909\u63db\u51e6\u7406\u306e\u7d44\u307f\u5408\u308f\u305b\n    public void demonstrateTransformations() {\n        Function&lt;String, String&gt; trim = String::trim;\n        Function&lt;String, String&gt; toLowerCase = String::toLowerCase;\n        Function&lt;String, String&gt; removeSpaces = s -&gt; s.replace(\" \", \"\");\n\n        \/\/ \u5909\u63db\u51e6\u7406\u306e\u5408\u6210\n        Function&lt;String, String&gt; processString = \n            trim.andThen(toLowerCase).andThen(removeSpaces);\n\n        String result = processString.apply(\"  Hello World  \");\n        \/\/ \u7d50\u679c: \"helloworld\"\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-109\">\n<h3 class=\"wp-block-heading\" id=\"i-24\">6.3 Java 8\u4ee5\u964d\u306e\u65b0\u6a5f\u80fd\u3068\u306e\u9023\u643a\u6d3b\u7528\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-110\">\n<p class=\"wp-block-paragraph\">Java 8\u4ee5\u964d\u306b\u5c0e\u5165\u3055\u308c\u305f\u65b0\u6a5f\u80fd\u3068\u30e9\u30e0\u30c0\u5f0f\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5f37\u529b\u306a\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ModernJavaFeatures {\n    \/\/ Optional\u3068\u306e\u9ad8\u5ea6\u306a\u9023\u643a\n    public void demonstrateOptionalIntegration() {\n        Map&lt;String, User&gt; userCache = new ConcurrentHashMap&lt;&gt;();\n\n        \/\/ \u8907\u96d1\u306a\u6761\u4ef6\u4ed8\u304d\u51e6\u7406\n        Optional.ofNullable(getUserById(\"user1\"))\n            .filter(user -&gt; user.isActive())\n            .map(User::getProfile)\n            .flatMap(profile -&gt; Optional.ofNullable(profile.getEmail()))\n            .ifPresentOrElse(\n                email -&gt; sendNotification(email),\n                () -&gt; logUserNotFound(\"user1\")\n            );\n\n        \/\/ \u30ab\u30b9\u30bf\u30e0Collector\u306e\u4f7f\u7528\n        List&lt;User&gt; users = getUsers();\n        Map&lt;String, List&lt;User&gt;&gt; usersByDepartment = users.stream()\n            .collect(Collectors.groupingBy(\n                User::getDepartment,\n                Collectors.filtering(\n                    user -&gt; user.isActive(),\n                    Collectors.toList()\n                )\n            ));\n    }\n\n    \/\/ \u6761\u4ef6\u4ed8\u304d\u51e6\u7406\u306e\u9ad8\u5ea6\u306a\u5b9f\u88c5\n    public void demonstrateConditionalProcessing() {\n        \/\/ \u51e6\u7406\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u69cb\u7bc9\n        List&lt;ProcessingStep&lt;String&gt;&gt; steps = Arrays.asList(\n            new ProcessingStep&lt;&gt;(\n                data -&gt; data.length() &gt; 10,\n                data -&gt; data.substring(0, 10) + \"...\"\n            ),\n            new ProcessingStep&lt;&gt;(\n                data -&gt; data.contains(\"@\"),\n                data -&gt; maskEmail(data)\n            )\n        );\n\n        \/\/ \u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u5b9f\u884c\n        String result = processWithSteps(\"long.email@example.com\", steps);\n    }\n\n    \/\/ \u51e6\u7406\u30b9\u30c6\u30c3\u30d7\u3092\u8868\u3059\u30af\u30e9\u30b9\n    private class ProcessingStep&lt;T&gt; {\n        private final Predicate&lt;T&gt; condition;\n        private final Function&lt;T, T&gt; processor;\n\n        public ProcessingStep(Predicate&lt;T&gt; condition, Function&lt;T, T&gt; processor) {\n            this.condition = condition;\n            this.processor = processor;\n        }\n\n        public T process(T input) {\n            return condition.test(input) ? processor.apply(input) : input;\n        }\n    }\n\n    private String processWithSteps(String input, List&lt;ProcessingStep&lt;String&gt;&gt; steps) {\n        return steps.stream()\n            .reduce(input,\n                (result, step) -&gt; step.process(result),\n                (a, b) -&gt; b);\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-111\">\n<p class=\"wp-block-paragraph\"><strong>\u767a\u5c55\u7684\u306a\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u306e\u307e\u3068\u3081\uff1a<\/strong><\/p>\n<\/div>\n\n<div id=\"id-96b2980c-af61-4285-adb7-653c590a94b2\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30d1\u30bf\u30fc\u30f3<\/th><th>\u4f7f\u7528\u5834\u9762<\/th><th>\u5229\u70b9<\/th><\/tr><\/thead><tbody><tr><td>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9<\/td><td>\u7279\u5b9a\u306e\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u306e\u5b9f\u88c5<\/td><td>\u578b\u5b89\u5168\u6027\u306e\u78ba\u4fdd\u3001\u518d\u5229\u7528\u6027\u306e\u5411\u4e0a<\/td><\/tr><tr><td>\u30e9\u30e0\u30c0\u5f0f\u306e\u7d44\u307f\u5408\u308f\u305b<\/td><td>\u8907\u96d1\u306a\u51e6\u7406\u30d5\u30ed\u30fc\u306e\u5b9f\u88c5<\/td><td>\u67d4\u8edf\u6027\u306e\u5411\u4e0a\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u7dad\u6301<\/td><\/tr><tr><td>\u30e2\u30c0\u30f3Java\u6a5f\u80fd\u3068\u306e\u9023\u643a<\/td><td>\u9ad8\u5ea6\u306a\u6a5f\u80fd\u8981\u4ef6\u306e\u5b9f\u88c5<\/td><td>\u6a5f\u80fd\u306e\u7d71\u5408\u3001\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n<div id=\"sgb-css-id-112\">\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u767a\u5c55\u7684\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u4f7f\u3044\u3053\u306a\u3059\u3053\u3068\u3067\u3001\u3088\u308a\u67d4\u8edf\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-113\">\n<h2 class=\"wp-block-heading\" id=\"i-25\">\u7dcf\u62ec\u3068\u307e\u3068\u3081<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-114\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u306f\u73fe\u4ee3\u306eJava\u958b\u767a\u306b\u304a\u3044\u3066\u5fc5\u9808\u306e\u6a5f\u80fd\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305f\u5185\u5bb9\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u52b9\u679c\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-115\">\n<p class=\"wp-block-paragraph\"><strong>1. \u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u5411\u4e0a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-116\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u3088\u308a\u7c21\u6f54\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-117\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-118\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30d0\u30b0\u306e\u5c11\u306a\u3044\u5b9f\u88c5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-119\">\n<p class=\"wp-block-paragraph\"><strong>2. \u958b\u767a\u52b9\u7387\u306e\u6539\u5584<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-120\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u5b9a\u578b\u7684\u306a\u30b3\u30fc\u30c9\u306e\u524a\u6e1b<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-121\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf Stream API\u3068\u306e\u76f8\u4e57\u52b9\u679c<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-122\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c6\u30b9\u30c8\u306e\u3057\u3084\u3059\u3055<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-123\">\n<p class=\"wp-block-paragraph\"><strong>3. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-124\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u9069\u5207\u306a\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-125\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30e1\u30e2\u30ea\u4f7f\u7528\u306e\u52b9\u7387\u5316<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-126\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u51e6\u7406\u901f\u5ea6\u306e\u5411\u4e0a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-127\">\n<h4 class=\"wp-block-heading\" id=\"i-26\">\u6b21\u306e\u30b9\u30c6\u30c3\u30d7<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-128\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u306e\u7406\u89e3\u3092\u3055\u3089\u306b\u6df1\u3081\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u63a8\u5968\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-129\">\n<p class=\"wp-block-paragraph\"><strong>1. \u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u306e\u7df4\u7fd2<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-130\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u7c21\u5358\u306a\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u306e\u5b9f\u88c5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-131\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u65e2\u5b58\u30b3\u30fc\u30c9\u306e\u30e9\u30e0\u30c0\u5f0f\u3078\u306e\u66f8\u304d\u63db\u3048<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-132\">\n<p class=\"wp-block-paragraph\"><strong>2. \u5b9f\u8df5\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u306e\u9069\u7528<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-133\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u6d3b\u7528<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-134\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30c1\u30fc\u30e0\u5185\u3067\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u5171\u6709<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-135\">\n<p class=\"wp-block-paragraph\"><strong>3. \u767a\u5c55\u7684\u306a\u6a5f\u80fd\u306e\u7fd2\u5f97<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-136\">\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u578b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4f5c\u6210<\/p>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u3000\u25cf \u9ad8\u5ea6\u306a\u7d44\u307f\u5408\u308f\u305b\u30d1\u30bf\u30fc\u30f3\u306e\u5b9f\u88c5<\/p>\n\n\n<div id=\"sgb-css-id-137\">\n<p class=\"wp-block-paragraph\">\u30e9\u30e0\u30c0\u5f0f\u306f\u6b63\u3057\u304f\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001Java\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8868\u73fe\u529b\u3068\u52b9\u7387\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305f\u5185\u5bb9\u3092\u57fa\u306b\u3001\u5b9f\u8df5\u7684\u306a\u7d4c\u9a13\u3092\u7a4d\u307f\u91cd\u306d\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u6d17\u7df4\u3055\u308c\u305f\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308b\u3053\u3068\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":2951,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,66],"tags":[],"class_list":["post-656","post","type-post","status-publish","format-standard","has-post-thumbnail","category-java","category-java-syntax"],"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=656"}],"version-history":[{"count":9,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions"}],"predecessor-version":[{"id":2969,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions\/2969"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/media\/2951"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}