{"id":266924,"date":"2015-10-27T23:06:03","date_gmt":"2015-10-27T20:06:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=266924"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=266924","title":{"rendered":"\u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 Java 3. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 Java (\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435, guava, apache, trove, gc-collections \u0438 \u0434\u0440\u0443\u0433\u0438\u0435)"},"content":{"rendered":"<p>       \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 Java. \u042d\u0442\u043e \u0442\u0435\u043c\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e Java \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0435 \u043e\u0441\u0432\u043e\u0438\u043b\u0438 \u0432\u0441\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u0430\u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0441 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a guava, apache, trove \u0438 \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u0438\u0440\u0435 Java \u0438 \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/727\/bf4\/436\/727bf44364b7422ba39240661856d73b.jpg\"\/><\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u0430\u043a \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 (\u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c), \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0434\u0443\u0442 \u0432 \u043d\u0435\u0439 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u044e\u0442 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435.<br \/>  <a name=\"habracut\"><\/a>   <\/p>\n<h2><b>I. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 Java<\/b><\/h2>\n<p>  \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0438 \u0442\u0430\u043a \u0437\u043d\u0430\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 JDK, \u043d\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043e \u043d\u0438\u0445, \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0438 \u0442\u0430\u043a \u0432\u0441\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0441\u0435 \u0447\u0442\u043e \u0432 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u0445 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u043d\u043e\u0433\u0434\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Java \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438\/\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435. \u0418\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 add \u0438\u043b\u0438 put \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u044d\u0442\u043e \u0432\u0435\u0440\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438, \u043d\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0434\u043b\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0432\u0440\u043e\u0434\u0435 \u00ab\u0410 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 ArrayList\u00bb \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u00ab\u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f\u00bb. \u042d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u0435\u0440\u043d\u043e, \u0442\u0430\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0438\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0432 List \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0440\u0430\u0437 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e \u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0442\u043e\u0447\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442).   <\/div>\n<\/div>\n<p>   1) \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 JDK   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 JDK<\/b><\/p>\n<div class=\"spoiler_text\"> <b>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b>   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Iterable.html\">Iterable<\/a><\/td>\n<td>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0447\u0442\u043e \u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c iterator \u0438 \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e for(Type value:collection). \u0415\u0441\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0443 \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (\u043a\u0440\u043e\u043c\u0435 Map)   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collection.html\">Collection<\/a><\/td>\n<td>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (\u043a\u0440\u043e\u043c\u0435 Map)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/List.html\">List<\/a><\/td>\n<td>\u0421\u043f\u0438\u0441\u043e\u043a \u044d\u0442\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0442\u0430\u043a \u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<br \/>   (sequence). \u0414\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e<br \/>   \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 Collection \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Set.html\">Set<\/a><\/td>\n<td>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438 (\u043f\u043e\u0445\u043e\u0436\u0438\u043c\u0438 \u043d\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430), \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435<br \/>   \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u044b. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u0431\u044b\u0442\u044c \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u043c. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 Collection \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Queue.html\">Queue<\/a><\/td>\n<td>\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438, \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 Collection \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Deque.html\">Deque<\/a><\/td>\n<td>\u0414\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0431\u043e\u0438\u0445 \u043a\u043e\u043d\u0446\u043e\u0432. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442<br \/>   Queue \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Map.html\">Map<\/a><\/td>\n<td>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043a\u043b\u044e\u0447 \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0412<br \/>   \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 Collection \u0438 Iterable)   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/SortedSet.html\">SortedSet<\/a><\/td>\n<td>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043b\u0438\u0431\u043e \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (\u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435<br \/>   Comparable \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441), \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Comparator. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/SortedMap.html\">SortedMap<\/a><\/td>\n<td>\u042d\u0442\u043e map&#8217;\u0430 \u043a\u043b\u044e\u0447\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u043b\u0438\u0431\u043e \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>   comparator&#8217;\u0430. \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/NavigableSet.html\">NavigableSet<\/a>   <\/td>\n<td>\u042d\u0442\u043e SortedSet, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u0430. NavigableSet \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u043e\u0431\u0445\u043e\u0434\u0430 \u0438\u043b\u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f.   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/NavigableMap.html\">NavigableMap<\/a>   <\/td>\n<td>\u042d\u0442\u043e SortedMap, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u0430. \u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u043e\u0431\u0445\u043e\u0434\u0430 \u0438\u043b\u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0432<br \/>   \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044f.   <\/td>\n<\/tr>\n<\/table>\n<p>   \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 java.util.concurrent   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/BlockingQueue.html\">BlockingQueue<\/a>   <\/td>\n<td>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Queue, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 (\u0431\u0440\u043e\u0441\u0430\u044e\u0442 exception, \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u043f\u043e\u0442\u043e\u043a \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u043b\u0438 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 false \u0438 \u0442.\u043f.)   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/TransferQueue.html\">TransferQueue<\/a>   <\/td>\n<td>\u042d\u0442\u0430 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a, \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u043d\u0435 \u0432\u044b\u0442\u0430\u0449\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441 \u0435\u0451 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/BlockingDeque.html\">BlockingDeque<\/a>   <\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e BlockingQueue, \u043d\u043e \u0434\u043b\u044f \u0434\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/ConcurrentMap.html\">ConcurrentMap\u00a0<\/a>   <\/td>\n<td>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Map. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u043d\u043e\u0432\u044b\u0445 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432: putIfAbsent, remove, replace, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/ConcurrentNavigableMap.html\">ConcurrentNavigableMap<\/a>   <\/td>\n<td>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NavigableMap \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430<\/td>\n<\/tr>\n<\/table>\n<p>   \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0438\u0437 java.util.concurrent \u0441\u043e\u0432\u0435\u0442\u0443\u044e<br \/>   \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u043e\u0442 \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/company\/luxoft\/blog\/157273\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/div>\n<\/div>\n<p>   2) \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u0438\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u0438\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<th width=\"100\">\u0422\u0438\u043f<\/th>\n<th>\u041e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435<\/th>\n<th>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435<\/th>\n<\/tr>\n<tr>\n<td>Lists<\/td>\n<td>  <\/p>\n<ul>\n<li>ArrayList \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/li>\n<li>LinkedList \u2014 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/li>\n<li>Vector \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u043b<\/li>\n<\/ul>\n<p>   <\/td>\n<td>\n<ul>\n<li>CopyOnWriteArrayList \u2014 \u0440\u0435\u0434\u043a\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0447\u0430\u0441\u0442\u044b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td>  Queues \/ <br \/>  Deques   <\/td>\n<td>\n<ul>\n<li>ArrayDeque \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/li>\n<li>Stack \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u043b<\/li>\n<li>PriorityQueue \u2014 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c <\/li>\n<\/ul>\n<p>   <\/td>\n<td>\n<ul>\n<li>ArrayBlockingQueue \u2014 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c<\/li>\n<li>ConcurrentLinkedDeque \/ ConcurrentLinkedQueue \u2014 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043d\u043e\u0434\u0430\u0445 <\/li>\n<li>DelayQueue \u2014 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/li>\n<li>LinkedBlockingDeque \/ LinkedBlockingQueue \u2014 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043d\u043e\u0434\u0430\u0445<\/li>\n<li>LinkedTransferQueue \u2014 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/li>\n<li>PriorityBlockingQueue \u2014 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f PriorityQueue<\/li>\n<li>SynchronousQueue \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c <\/li>\n<\/ul>\n<p>   <\/td>\n<\/tr>\n<tr>\n<td>Maps    <\/td>\n<td>\n<ul>\n<li>HashMap \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/li>\n<li>EnumMap \u2014 enum \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 <\/li>\n<li>Hashtable \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u043b<\/li>\n<li>IdentityHashMap \u2014 \u043a\u043b\u044e\u0447\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ==<\/li>\n<li>LinkedHashMap \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0441\u0442\u0430\u0432\u043a\u0438<\/li>\n<li>TreeMap \u2014 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438<\/li>\n<li>WeakHashMap \u2014 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043a\u0435\u0448\u0435\u0439<\/li>\n<\/ul>\n<p>   <\/td>\n<td>\n<ul>\n<li>ConcurrentHashMap \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/li>\n<li>ConcurrentSkipListMap \u2014 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/li>\n<\/ul>\n<p>   <\/td>\n<\/tr>\n<tr>\n<td>Sets    <\/td>\n<td>\n<ul>\n<li>HashSet \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<\/li>\n<li>EnumSet \u2014 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 enums<\/li>\n<li>BitSet* \u2014 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u0442\u043e\u0432<\/li>\n<li>LinkedHashSet \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0441\u0442\u0430\u0432\u043a\u0438<\/li>\n<li>TreeSet \u2014 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 set<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>ConcurrentSkipListSet \u2014 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 set<\/li>\n<li>CopyOnWriteArraySet \u2014 \u0440\u0435\u0434\u043a\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0447\u0430\u0441\u0442\u044b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>   <\/td>\n<\/tr>\n<\/table>\n<p>  * \u2014 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, BitSet \u0445\u043e\u0442\u044c \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Set&#8217;\u043e\u043c, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Set \u043d\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442.  <\/div>\n<\/div>\n<p>   3) \u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 JDK   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Java<\/b><\/p>\n<div class=\"spoiler_text\"> \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u044b \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438 (legacy)   <\/p>\n<table>\n<tr>\n<th width=\"80\">\u0418\u043c\u044f<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><b><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Hashtable.html\">Hashtable<\/a><\/b>   <\/td>\n<td>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 HashMap, \u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438<br \/>   \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Collecions.synchronizedMap. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e<br \/>   \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 ConcurrentHashMap. HashTable \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0438 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0447\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439<br \/>   HashMap, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0430 \u043d\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.   <\/td>\n<\/tr>\n<tr>\n<td><b><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Vector.html\">Vector<\/a><\/b><\/td>\n<td>\u0420\u0430\u043d\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 ArrayList, \u043e\u0434\u043d\u0430\u043a\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b \u043f\u043e \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0447\u0442\u043e \u0438<br \/>   HashTable.   <\/td>\n<\/tr>\n<tr>\n<td><b><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Stack.html\">Stack<\/a><\/b><\/td>\n<td>\u0420\u0430\u043d\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Vector,<br \/>   \u0442\u043e\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c.   <\/td>\n<\/tr>\n<\/table>\n<p>   \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 (legacy) \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445   <\/p>\n<table>\n<tr>\n<th width=\"80\">\u0418\u043c\u044f<\/th>\n<th width=\"120\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><i><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Properties.html\">Properties<\/a><\/i>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Hashtable.html\">Hashtable<\/a><\/td>\n<td>\u041a\u0430\u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 Hashtable, Properties \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f,<br \/>   \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Map, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0447\u0435\u043c\u0443 Properties<br \/>   \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u043c <a href=\"http:\/\/stackoverflow.com\/questions\/2358651\/are-java-properties-effectively-deprecated\">\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0438<\/a>.   <\/td>\n<\/tr>\n<tr>\n<td><i><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Properties.html\">UIDefaults<\/a><\/i>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Hashtable.html\">Hashtable<\/a><\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f Swing \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442<\/td>\n<\/tr>\n<\/table>\n<p>   <\/div>\n<\/div>\n<p>   4) \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <b>List<\/b> (\u0441\u043f\u0438\u0441\u043e\u043a)   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 List (\u0441\u043f\u0438\u0441\u043e\u043a)<\/b><\/p>\n<div class=\"spoiler_text\"> \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 List:   <\/p>\n<table>\n<tr>\n<th width=\"90\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"60\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u0420\u0430\u0437\u043c\u0435\u0440*<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\"><b>ArrayList<\/b><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/List.html\">List<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043b\u0443\u0447\u0448\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u043b\u0438 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u044b\u043c<br \/>   \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443, LinkedList \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u043d\u043e \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0432 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TreeList \u043e\u0442 apache). \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 ArrayList \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/128269\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<td>4*N   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\"><b>LinkedList<\/b><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/List.html\">List<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0445\u0443\u0436\u0435 \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0447\u0435\u043c ArrayList, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0432 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u043e\u0433\u0434\u0430 \u0447\u0430\u0441\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 (\u043d\u043e \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0432 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TreeList \u043e\u0442 apache).\u0422\u0430\u043a \u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 Deque \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 Queue \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, LinkedList \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0430\u043a FIFO \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 LinkedList \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/127864\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<td>24*N   <\/td>\n<\/tr>\n<\/table>\n<p>   \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 java.util.concurrent   <\/p>\n<table>\n<tr>\n<th width=\"90\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"60\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/CopyOnWriteArrayList.html\"><b>CopyOnWriteArrayList<\/b><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/List.html\">List<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f ArrayList, \u043d\u043e \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f<br \/>   \u043d\u043e\u0432\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0432\u0441\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438,<br \/>   \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u043e<br \/>   \u0432\u0440\u0435\u043c\u044f \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.   <\/td>\n<\/tr>\n<\/table>\n<p>   \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 List.   <\/p>\n<table>\n<tr>\n<th width=\"90\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"90\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/management\/relation\/RoleList.html\"><i>RoleList<\/i><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0440\u043e\u043b\u0435\u0439 (Roles). \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430<br \/>   ArrayList \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/management\/relation\/RoleUnresolvedList.html\"><i>RoleUnresolvedList<\/i><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 unresolved \u0440\u043e\u043b\u0435\u0439 (Unresolved Roles). \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 ArrayList \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438   <\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/management\/AttributeList.html\"><i>AttributeList<\/i><\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 MBean. \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 ArrayList<br \/>   \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438   <\/td>\n<\/tr>\n<\/table>\n<p>   * \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0434\u043b\u044f 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 Compressed Oops, \u0433\u0434\u0435 N \u044d\u0442\u043e capacity \u0441\u043f\u0438\u0441\u043a\u0430   <\/div>\n<\/div>\n<p>   5) \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <b>Set<\/b> (\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e)   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Set (\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e)<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u0420\u0430\u0437\u043c\u0435\u0440*<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Set.html\">Set<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043b\u0443\u0447\u0448\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.   <\/td>\n<td>32*S + 4*C   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a \u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043a\u0430\u043a HashSet. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0447\u0442\u043e HashSet, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u043e<br \/>   \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437.   <\/td>\n<td>40 * S + 4*C<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeSet.html\">TreeSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/NavigableSet.html\">NavigableSet<\/a>   <\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f NavigableSet \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Comparator \u0438\u043b\u0438 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u0445\u043e\u0434\/\u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438. \u041e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 TreeMap, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a HashSet \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 HashMap   <\/td>\n<td>40 * S<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/EnumSet.html\">EnumSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Set.html\">Set<\/a><\/td>\n<td>\u0412\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u00a0Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0431\u0438\u0442\u043e\u0432\u043e\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0435. \u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b EnumSet\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 enum \u0442\u0438\u043f\u0443   <\/td>\n<td>S\/8<\/td>\n<\/tr>\n<\/table>\n<p>   * \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0434\u043b\u044f 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 Compressed Oops, \u0433\u0434\u0435 \u0421 \u044d\u0442\u043e capacity \u0441\u043f\u0438\u0441\u043a\u0430, S \u044d\u0442\u043e size \u0441\u043f\u0438\u0441\u043a\u0430<\/p>\n<p>  \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Set   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/print\/attribute\/standard\/JobStateReasons.html\">JobStateReasons<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u0445 \u043f\u0435\u0447\u0430\u0442\u0438 (print job&#8217;s attribute set).<br \/>   \u0423\u0437\u043a\u043e\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 HashSet \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438   <\/td>\n<\/tr>\n<\/table>\n<p>   \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 java.util.concurrent   <\/p>\n<table>\n<tr>\n<th width=\"90\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"60\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/CopyOnWriteArraySet.html\">CopyOnWriteArraySet<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Set.html\">Set<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e CopyOnWriteArrayList \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u043e\u043f\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443<br \/>   \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043a thread-safe   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/ConcurrentSkipListSet.html\">ConcurrentSkipListSet<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Set.html\">Set<\/a><\/td>\n<td>\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c TreeSet<\/td>\n<\/tr>\n<\/table>\n<p>   <\/div>\n<\/div>\n<p>   6) \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <b>Map<\/b> (\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432)   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/b><\/p>\n<div class=\"spoiler_text\"> \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 Map:   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u0420\u0430\u0437\u043c\u0435\u0440*<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Map.html\">Map<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446 (\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043d\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f Hashtable, \u0441<br \/>   \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0430\u0432\u043d\u044b\u0445 null). \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438<br \/>   \u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 HashMap \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/128017\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<td>32 * S + 4*C<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0441\u0432\u044f\u0437\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0432 Map&#8217;\u0435<br \/>   \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438 \u043e\u0431\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a \u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043a\u0430\u043a<br \/>   HashMap. \u0422\u0430\u043a \u0436\u0435 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0435\u0448\u0435\u0439 (\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435<br \/>   removeEldestEntry(Map.Entry)\u00a0). \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 LinkedHashMap \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/129037\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<td>40 * S + 4*C<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeMap.html\">TreeMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/NavigableMap.html\">NavigableMap<\/a>   <\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f NavigableMap \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0445\u043e\u0434\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043a\u043b\u044e\u0447\u0438<br \/>   \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u0442\u0430\u043a \u0436\u0435 NavigableMap \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a \u043a\u043b\u044e\u0447\u0443.   <\/td>\n<td>40 * S<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/WeakHashMap.html\">WeakHashMap<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Map.html\">Map<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 HashMap, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u0441\u0435 \u043a\u043b\u044e\u0447\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/ref\/WeakReference.html\">\u0441\u043b\u0430\u0431\u044b\u043c\u0438<br \/>   \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438<\/a> (weak references), \u0442\u043e \u0435\u0441\u0442\u044c garbage collected \u043c\u043e\u0436\u0435\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043a\u043b\u044e\u0447\u0438 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b<br \/>   \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u044d\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. WeakHashMap \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445<br \/>   \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u0441\u043b\u0430\u0431\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a.   <\/td>\n<td>32 * S + 4*C<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/EnumMap.html\">EnumMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Map.html\">Map<\/a><\/td>\n<td>\u0412\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u0412\u0441\u0435 \u043a\u043b\u044e\u0447\u0438 \u0432<br \/>   \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u043c\u0443 enum \u0442\u0438\u043f\u0443.   <\/td>\n<td>4*C<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/IdentityHashMap.html\">IdentityHashMap<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Map.html\">Map<\/a><\/td>\n<td>Identity-based Map, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a HashMap, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 HashMap \u043e\u043d<br \/>   \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 equals, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u043d\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0434\u0438\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435<br \/>   \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u043e \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f<br \/>   \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u00abspoof attacks\u00bb, \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u044b equals \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443.<br \/>   \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0443 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043e\u0431\u0445\u043e\u0434\u0435 \u0433\u0440\u0430\u0444\u043e\u0432 (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<br \/>   \u0438\u043b\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f), \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.   <\/td>\n<td>8*C<\/td>\n<\/tr>\n<\/table>\n<p>   * \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0434\u043b\u044f 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 Compressed Oops, \u0433\u0434\u0435 \u0421 \u044d\u0442\u043e capacity \u0441\u043f\u0438\u0441\u043a\u0430, S \u044d\u0442\u043e size \u0441\u043f\u0438\u0441\u043a\u0430<\/p>\n<p>  \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 java.util.concurrent   <\/p>\n<table>\n<tr>\n<th width=\"90\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"60\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/ConcurrentHashMap.html\">ConcurrentHashMap<\/a>   <\/td>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ConcurrentMap.html\">ConcurrentMap<\/a>   <\/td>\n<td>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 HashMap. \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e<br \/>   \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c<br \/>   \u0440\u0435\u0436\u0438\u043c\u0435. \u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043a\u0438\u0434\u0430\u044e\u0442 ConcurrentModificationException \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/ConcurrentSkipListMap.html\">ConcurrentSkipListMap<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ConcurrentNavigableMap.html\">ConcurrentNavigableMap<\/a>   <\/td>\n<td>\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c TreeMap<\/td>\n<\/tr>\n<\/table>\n<p>   <\/div>\n<\/div>\n<p>   7) \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 <b>Query\/Dequery<\/b> (\u043e\u0447\u0435\u0440\u0435\u0434\u0438)   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 Query\/Dequery<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u041e\u0441\u043d\u043e\u0432\u0430\u043d<br \/>   \u043d\u0430   <\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u0420\u0430\u0437\u043c\u0435\u0440*<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Deque.html\">Deque<\/a><\/td>\n<td>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Deque \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f<br \/>   ArrayList   <\/td>\n<td>6*N<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Deque.html\">Deque<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438 Deque \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 Queue \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, LinkedList \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0430\u043a FIFO \u043e\u0447\u0435\u0440\u0435\u0434\u044c.   <\/td>\n<td>40*N<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/PriorityQueue.html\">PriorityQueue<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Queue.html\">Queue<\/a><\/td>\n<td>\u041d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f priority queue, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043a\u0443\u0447\u0435 (\u043deap). \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c<br \/>   \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Comparator. \u041d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c null \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b.   <\/td>\n<\/tr>\n<\/table>\n<p>   * \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0434\u043b\u044f 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 Compressed Oops, \u0433\u0434\u0435 \u0421 \u044d\u0442\u043e capacity \u0441\u043f\u0438\u0441\u043a\u0430, S \u044d\u0442\u043e size \u0441\u043f\u0438\u0441\u043a\u0430<\/p>\n<p>  \u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 Queue \u0438 Deque, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 java.util.concurrent, \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0443, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u0438\u0445 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u043e\u0442 \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/company\/luxoft\/blog\/157273\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a><\/p><\/div>\n<\/div>\n<p>   8) \u041f\u0440\u043e\u0447\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0447\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"70\">\u0420\u0430\u0437\u043c\u0435\u0440*<\/th>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/BitSet.html\">BitSet<\/a>   <\/td>\n<td>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, BitSet \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Set. BitSet \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0438\u0442\u043e\u0432.   <\/td>\n<td>N \/ 8   <\/td>\n<\/tr>\n<\/table>\n<p>   <\/div>\n<\/div>\n<p>   9) \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438<\/b><\/p>\n<div class=\"spoiler_text\"> \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b- \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 Collections \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<br \/>   <b>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439:<\/b>  <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041c\u0435\u0442\u043e\u0434<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><b>frequency<\/b>(Collection, Object)  <\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td><b>disjoint<\/b>(Collection, Collection)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 true, \u0435\u0441\u043b\u0438 \u0432 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u043d\u0435\u0442 \u043e\u0431\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td><b>addAll<\/b>(Collection&lt;? super T&gt;, T&#8230;)<\/td>\n<td>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445) \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e<\/td>\n<\/tr>\n<tr>\n<td><b>min<\/b>(Collection)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td><b>max<\/b>(Collection)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438:<\/b>   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041c\u0435\u0442\u043e\u0434<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><b>sort<\/b>(List)<\/td>\n<td>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c (merge sort algorithm), \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0431\u043b\u0438\u0437\u043a\u0430 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 (high quality quicksort), \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f O(n*log n) \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 quicksort), \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 quicksort). \u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u044d\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435<\/td>\n<\/tr>\n<tr>\n<td><b>binarySearch<\/b>(List, Object)<\/td>\n<td>\u041f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 (list), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f binary search \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c.<\/td>\n<\/tr>\n<tr>\n<td><b>reverse<\/b>(List)<\/td>\n<td>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 (list)<\/td>\n<\/tr>\n<tr>\n<td><b>shuffle<\/b>(List)<\/td>\n<td>\u041f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435<\/td>\n<\/tr>\n<tr>\n<td><b>fill<\/b>(List, Object)\u00a0<\/td>\n<td>\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/td>\n<\/tr>\n<tr>\n<td><b>copy<\/b>(List dest, List src)<\/td>\n<td>\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439<\/td>\n<\/tr>\n<tr>\n<td><b>rotate<\/b>(List list, int distance)<\/td>\n<td>\u041f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td><b>replaceAll<\/b>(List list, Object oldVal, Object newVal)<\/td>\n<td>\u0417\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435<\/td>\n<\/tr>\n<tr>\n<td><b>indexOfSubList<\/b>(List source, List target)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 target \u0432 \u0441\u043f\u0438\u0441\u043e\u043a source<\/td>\n<\/tr>\n<tr>\n<td><b>lastIndexOfSubList<\/b>(List source, List target)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 target \u0432 \u0441\u043f\u0438\u0441\u043e\u043a source<\/td>\n<\/tr>\n<tr>\n<td><b>swap<\/b>(List, int, int)<\/td>\n<td>\u041c\u0435\u043d\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445<\/td>\n<\/tr>\n<\/table>\n<p>  \u0412 Java 8 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 \u043a\u0430\u043a stream Api, \u043d\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043b\u0435\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 5.   <\/div>\n<\/div>\n<p>   10) \u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 JDK \u0432\u043d\u0443\u0442\u0440\u0438   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 JDK \u0432\u043d\u0443\u0442\u0440\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<table>\n<tr>\n<th width=\"100\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/th>\n<\/tr>\n<tr>\n<td>ArrayList<\/td>\n<td>\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043b\u0438\u0448\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430\u0434 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c + \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f size \u0441\u043f\u0438\u0441\u043a\u0430. \u0412\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e<br \/>   \u043c\u0430\u0441\u0441\u0438\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0442 \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u0412<br \/>   \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u0435\u0441\u044c \u0445\u0432\u043e\u0441\u0442 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430<br \/>   \u043d\u043e\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u0435\u043c\u043a\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438<br \/>   \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438\/\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <br \/>   \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/128269\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<\/tr>\n<tr>\n<td>LinkedList<\/td>\n<td>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 Node, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442,<br \/>   \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u0412 \u0441\u0430\u043c\u043e\u043c \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u0441\u0441\u044b\u043b\u043a\u0438<br \/>   \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u0440\u043e\u0433\u043e\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435 \u0434\u043b\u044f<br \/>   \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438, LinkedList \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442<br \/>   \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0447\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438. \u041e\u0431\u044b\u0447\u043d\u043e ArrayList, ArrayDequery \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 (\u0447\u0430\u0441\u0442\u044b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443), \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d (\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TreeList \u043e\u0442 apache). \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/127864\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<\/tr>\n<tr>\n<td>HashMap<\/td>\n<td>\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (buket) Node \u0440\u0430\u0432\u043d\u044b\u0439 capacity \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0435\u0433\u043e \u0445\u0435\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430 capacity HashMap \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0435\u0449\u0451 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Node \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\/\u044b (\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0445\u0435\u0448-\u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f), \u0442\u043e \u0442\u0430\u043a Node \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u043e\u0434\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 equals \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Node \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0435\u0446 \u0441\u043f\u0438\u0441\u043a\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0432\u044f\u0437\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 (buket) \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 8 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0445\u0435\u0448 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0\">\u0432\u0438\u043a\u0438<\/a> (\u0432 HashMap \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439). \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 HashMap \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/128017\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<\/tr>\n<tr>\n<td>HashSet<\/td>\n<td>HashSet \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e HashMap, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Object \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0438. \u0412\u043d\u0443\u0442\u0440\u0438 HashSet \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f HashMap.   <\/td>\n<\/tr>\n<tr>\n<td>IdentityHashMap<\/td>\n<td>IdentityHashMap \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 HashMap, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430 equals, \u0442\u0430\u043a<br \/>   \u043a\u0430\u043a \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043b\u044e\u0431\u044b\u0435 \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c<br \/>   \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Node, \u0445\u0440\u0430\u043d\u044f \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0438 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f\u0445<br \/>   \u0438\u0449\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 (<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043c\u0435\u0442\u043e\u0434<br \/>   \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>).\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0445\u0435\u0448 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0\">\u0432\u0438\u043a\u0438<\/a><br \/>   (\u0432 IdentityHashMap \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439)   <\/td>\n<\/tr>\n<tr>\n<td>LinkedHashMap\/LinkedHashSet<\/td>\n<td>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u043a\u0430\u043a \u043f\u0440\u0438 HashMap, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e<br \/>   \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Node, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f TreeNode, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435,<br \/>   \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c LinkedHashMap \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439. \u041f\u043e \u0441\u0443\u0442\u0438, LinkedHashMap =<br \/>   HashMap + LinkedList. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 LinkedHashMap \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/habrahabr.ru\/post\/129037\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>.   <\/td>\n<\/tr>\n<tr>\n<td>TreeMap\/TreeSet<\/td>\n<td>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u044b\u043c \u0434\u0435\u0440\u0435\u0432\u043e\u043c,<br \/>   \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE-%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE\">\u0432\u0438\u043a\u0438<\/a>   <\/td>\n<\/tr>\n<tr>\n<td>WeakHashMap<\/td>\n<td>\u0412\u043d\u0443\u0442\u0440\u0438 \u0432\u0441\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u043a \u0432 HashMap, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a<br \/>   \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f WeakReference \u0438 \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c ReferenceQueue, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<br \/>   WeakEntries   <\/td>\n<\/tr>\n<tr>\n<td>EnumSet\/EnumMap<\/td>\n<td>\u0412 EnumSet \u0438 EnumMap \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 HashSet \u0438 HashMap \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u043b\u044f<br \/>   \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<br \/>   \u0442\u043e \u0447\u0442\u043e EnumSet \u0438 EnumMap \u043c\u043e\u0433\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e Enum&#8217;\u0430.   <\/td>\n<\/tr>\n<\/table>\n<p>   <\/div>\n<\/div>\n<p>   11) \u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\"> \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0451 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/collections\/reference.html\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u043f\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438<\/a><br \/>   1) <b>Wrapper implementations<\/b> \u2013 \u041e\u0431\u0435\u0440\u0442\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439. \u0414\u043e\u0441\u0442\u0443\u043f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.   <\/p>\n<ul>\n<li><b><i>Collections.unmodifiableInterface<\/i><\/b>\u2013 \u041e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439, \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043a\u0438\u043d\u0443\u0442 UnsupportedOperationException   <\/li>\n<li><b><i>Collections.synchronizedInterface<\/i><\/b>\u2013 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439, \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e-\u043e\u0431\u0435\u0440\u0442\u043a\u0443, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u0443\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u043f\u043e\u0442\u043e\u043a\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f.   <\/li>\n<li><b><i>Collections.checkedInterface<\/i><\/b> \u2013 \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0442\u0438\u043f\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438<br \/>  (\u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f), \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 type-safe view \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439<br \/>  \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 ClassCastException \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438<br \/>  \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 generic&#8217;\u043e\u0432 JDK \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0438\u043f\u043e\u0432, \u043e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c<br \/>  \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e.\n<\/li>\n<\/ul>\n<p>   2) <b>Adapter implementations<\/b> \u2013 \u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443   <\/p>\n<ul>\n<li><b><i>newSetFromMap(Map)<\/i><\/b> \u2013 \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438\u0437 \u043b\u044e\u0431\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/li>\n<li><b><i>asLifoQueue(Deque)<\/i><\/b>\u00a0&#8212; \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 view \u0438\u0437\u00a0Deque\u00a0\u0432 \u0432\u0438\u0434\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 Last In First Out (LIFO).   <\/li>\n<\/ul>\n<p>   3) <b>Convenience implementations<\/b> \u2013 \u0412\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u00ab\u043c\u0438\u043d\u0438-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00bb \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.   <\/p>\n<ul>\n<li><b><i>Arrays.asList<\/i><\/b> \u2013 \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a (list)<\/li>\n<li><b><i>emptySet, emptyList \u0438 emptyMap<\/i><\/b> \u2013 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u0443\u044e \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e empty set, list, or<br \/>   map   <\/li>\n<li><b><i>singleton, singletonList \u0438 singletonMap<\/i><\/b> \u2013 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0439 set, list \u0438\u043b\u0438 map, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0438\u043b\u0438 \u043e\u0434\u043d\u043e \u0441\u0432\u044f\u0437\u044c \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435)   <\/li>\n<li><b><i>nCopies<\/i><\/b> \u2013 \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 n \u043a\u043e\u043f\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/li>\n<\/ul>\n<p>   4) <b>\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432<\/b> \u2014 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (\u0441\u043a\u0435\u043b\u0435\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439) \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.   <\/p>\n<ul>\n<li><b><i>AbstractCollection<\/i><\/b> \u2013 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Collection \u0434\u043b\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c, \u043d\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u043c (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u00abbag\u00bb \u0438\u043b\u0438 multiset).   <\/li>\n<li><b><i>AbstractSet<\/i><\/b> \u2014 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/li>\n<li><b><i>AbstractList<\/i><\/b> \u2013 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f (random access), \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0438\u0432.   <\/li>\n<li><b><i>AbstractSequentialList<\/i><\/b> \u2013 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f List \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 (sequential access), \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a linked list.   <\/li>\n<li><b><i>AbstractQueue<\/i><\/b> \u2014 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f Queue \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f.<\/li>\n<li><b><i>AbstractMap<\/i><\/b> \u2014 \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f Map \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f.<\/li>\n<\/ul>\n<p>   4) <b>\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/b>   <\/p>\n<ul>\n<li><b><i>Iterators<\/i><\/b> \u2013 \u041f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 Enumeration \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043d\u043e \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438.<\/li>\n<li><b><i>Iterator<\/i><\/b> \u2013 \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Enumeration \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.   <\/li>\n<li><b><i>ListIterator<\/i><\/b> \u2013 \u044d\u0442\u043e Iterator \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f lists, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e Iterator \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0437\u0430\u043c\u0435\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443.   <\/li>\n<\/ul>\n<p>   5) Ordering   <\/p>\n<ul>\n<li><b><i>Comparable<\/i><\/b> \u2014 \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u0438\u0445. \u042d\u0442\u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0438\u043b\u0438 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 sorted set \u0438\u043b\u0438 map.   <\/li>\n<li><b><i>Comparator<\/i><\/b> \u2014 Represents an order relation, which can be used to sort a list or maintin order in a sorted set or map. Can override a type&#8217;s natural ordering or order objects of a type that does not implement the\u00a0Comparable\u00a0interface.   <\/li>\n<\/ul>\n<p>   6) Runtime exceptions   <\/p>\n<ul>\n<li><b><i>UnsupportedOperationException<\/i><\/b> \u2013 \u042d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0432\u044b\u0437\u0432\u0430\u043d\u0430.   <\/li>\n<li><b><i>ConcurrentModificationException<\/i><\/b> \u2013 \u0412\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f iterators \u0438\u043b\u0438 list iterators, \u0435\u0441\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u0431\u044b\u043b\u0430 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e (\u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430) \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e views \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u043f\u0438\u0441\u043a\u0430\u0445, \u0435\u0441\u043b\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u044b\u043b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d.   <\/li>\n<\/ul>\n<p>   7) \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c   <\/p>\n<ul>\n<li><b><i>RandomAccess<\/i><\/b> \u2014 \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441-\u043c\u0430\u0440\u043a\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 (\u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0437\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f) \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/li>\n<\/ul>\n<p>   8) \u0423\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438   <\/p>\n<ul>\n<li><b><i>Arrays<\/i><\/b> \u2013 \u041d\u0430\u0431\u043e\u0440 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u043f\u043e\u0438\u0441\u043a\u0430, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0445\u0435\u0448\u0430 \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0422\u0430\u043a \u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0430\u043c\u0438 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438.<\/li>\n<\/ul>\n<p>   <\/div>\n<\/div>\n<h2><b>II. \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h2>\n<p>  \u0418\u0442\u0430\u043a, \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0437\u043e\u0440 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a: guava, apache, trove \u0438 gc-collections. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438? Guava \u0438 Apache Commons Collections \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c \u043c\u043d\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432 \u043b\u044e\u0431\u043e\u043c Java \u043f\u0440\u043e\u0435\u043a\u0442\u0435, Trove \u2014 \u0442\u043e\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438. GC-collections \u2014 \u0441\u0443\u0434\u044f \u043f\u043e \u043e\u0446\u0435\u043d\u043a\u0430\u043c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430 github&#8217;e (&gt;1300 \u0437\u0432\u0435\u0437\u0434), \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0451 \u043d\u0430\u0431\u0440\u0430\u043b\u0430 \u00ab\u0437\u0432\u0435\u0437\u0434\u00bb \u0442\u043e\u043b\u044c\u043a\u043e guava. \u0422\u0430\u043a \u0436\u0435 \u043c\u0435\u043b\u044c\u043a\u043e\u043c \u0437\u0430\u0445\u0432\u0430\u0447\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0444\u0438\u0448\u043a\u0438 (\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u0444\u0438\u0448\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a).<\/p>\n<h3><b>2.1 \u0424\u0438\u0448\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h3>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0437\u043e\u0440 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0444\u0438\u0448\u0435\u043a (\u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434) \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439:<br \/>   1) <b>Guava<\/b> \u2014 \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0442 \u0433\u0443\u0433\u043b \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0430\u043c\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043e\u043d\u0430<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043d\u043e \u0441\u0430\u043c\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u00ab\u0444\u0438\u0448\u043a\u0430\u00bb \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u043e\u0432-\u0443\u0442\u0438\u043b\u0438\u0442 \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438<br \/>   \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Collections \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438, \u0447\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.<br \/>   \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442.<\/p>\n<p>  2) <b>Apache Commons Collections<\/b> \u2014 \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u00ab\u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u00bb guava, \u043e\u043d\u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u044f\u0434<br \/>   \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0443\u0442\u0438\u043b\u0438\u0442 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 Java, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e wrapper&#8217;\u043e\u0432 \u0434\u043b\u044f<br \/>   \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e map&#8217;\u044b \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c<br \/>   \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043d\u0435\u0439.<\/p>\n<p>  3) <b>Trove<\/b> \u2014 \u0444\u0438\u0448\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0430<br \/>   \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438), \u0430 \u0442\u0430\u043a \u0436\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<br \/>   \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  4) <b>GC-collections<\/b> \u2014 \u0444\u0438\u0448\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 \u0438\u0434\u0435\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043a\u043b\u0430\u0441\u0441\u044b<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u043e\u0432-\u0443\u0442\u0438\u043b\u0438\u0442. \u0414\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0443<br \/>   \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0445.<\/p>\n<h2><b>III. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445<\/b><\/h2>\n<p>  \u0422\u0443\u0442 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445:<\/p>\n<h3><b>3.1 \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0443 Guava<\/b><\/h3>\n<p>  <b>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f:<\/b> <a href=\"https:\/\/github.com\/google\/guava\/wiki\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, <a href=\"https:\/\/github.com\/google\/guava\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b<\/a>, <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/overview-summary.html\">javadoc<\/a>.<br \/>  \u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Maven, Gradle<\/b><\/p>\n<div class=\"spoiler_text\">Maven  <\/p>\n<pre><code class=\"xml\">&lt;dependency&gt;   &lt;groupId&gt;com.google.guava&lt;\/groupId&gt;   &lt;artifactId&gt;guava&lt;\/artifactId&gt;   &lt;version&gt;18.0&lt;\/version&gt; &lt;\/dependency&gt; <\/code><\/pre>\n<p>  Gradle  <\/p>\n<pre><code class=\"xml\">dependencies {   compile 'com.google.guava:guava:18.0' } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0413\u0443\u0433\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0440\u044f\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0441\u044c\u043c\u0430 \u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435<br \/>   \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c guava \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u0430\u0432\u043d\u043e \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u0435-\u0444\u0430\u043a\u0442\u043e<br \/>   \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 Java \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0438\u0445, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e<br \/>   \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e guava<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 guava.<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/b>: \u0435\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"185\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/th>\n<th width=\"200\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableCollection.html\"><b>ImmutableCollection<\/b><\/a><br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableList.html\"><b>ImmutableList<\/b><\/a><br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSet.html\"><b>ImmutableSet<\/b><\/a><br \/>   \u2026 \u0438 \u0442.\u0434.   <\/td>\n<td>\u0425\u043e\u0442\u044f \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 Java \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u0432\u044b\u0437\u0432\u0430\u0432<br \/>   Collections.unmodifiableCollection (unmodifiableList \u0438\u043b\u0438 unmodifiableMap), \u043d\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439<br \/>   \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u043b\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c, \u0447\u0442\u043e \u044d\u0442\u043e<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f, \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e,<br \/>   \u0431\u0443\u0434\u0443\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 Java \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0442\u0440\u0430\u0442\u044f\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c \u0447\u0442\u0435\u043d\u0438\u0438 \u0438 \u0442.\u00a0\u043f.<br \/>   \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a ImmutableCollection guava \u00ab\u0437\u043d\u0430\u044e\u0442\u00bb \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441<br \/>   \u0443\u0447\u0435\u0442\u043e\u043c \u044d\u0442\u043e\u0433\u043e.   <\/td>\n<td>JDK: <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableCollection.html\">ImmutableCollection<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableList.html\">ImmutableList<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSet.html\">ImmutableSet<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSortedSet.html\">ImmutableSortedSet<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableMap.html\">ImmutableMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSortedMap.html\">ImmutableSortedMap<\/a><br \/>   Guava: <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableMultiset.html\">ImmutableMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSortedMultiset.html\">ImmutableSortedMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableMultimap.html\">ImmutableMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableListMultimap.html\">ImmutableListMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSetMultimap.html\">ImmutableSetMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableBiMap.html\">ImmutableBiMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableClassToInstanceMap.html\">ImmutableClassToInstanceMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableTable.html\">ImmutableTable<\/a>   <\/td>\n<td> \u2014 \u0435\u0441\u043b\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b,<br \/>   \u2014 \u0435\u0441\u043b\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/Multiset.html\"><b>Multiset<\/b><\/a>   <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f Set, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041e\u0447\u0435\u043d\u044c<br \/>   \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0434\u043b\u044f \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0442\u044c \u0435\u0441\u0442\u044c \u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435, \u043d\u043e \u0438<br \/>   \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e (\u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0439 \u0442\u0435\u0445 \u0438\u043b\u0438 \u0438\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432<br \/>   \u043a\u0430\u043a\u043e\u043c-\u043b\u0438\u0431\u043e \u0442\u0435\u043a\u0441\u0442\u0435). \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Map&lt;T, Integer&gt;, \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e<br \/>   \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445.   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/HashMultiset.html\">HashMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/TreeMultiset.html\">TreeMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/LinkedHashMultiset.html\">LinkedHashMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ConcurrentHashMultiset.html\">ConcurrentHashMultiset<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableMultiset.html\">ImmutableMultiset<\/a><br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/SortedMultiset.html\">SortedMultiset<\/a>   <\/td>\n<td> \u2014 \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b-\u0432\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435<br \/>   \u2014 \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b-\u0432\u0430 \u0431\u0443\u043a\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435<br \/>   \u2014 \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b-\u0432\u0430 \u043b\u044e\u0431\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/Multimap.html\"><b>Multimap<\/b><\/a>   <\/td>\n<td>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0439 \u043e\u043f\u044b\u0442\u043d\u044b\u0439 Java \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432\u0440\u043e\u0434\u0435 Map&lt;K, List&lt;V&gt;&gt; \u0438\u043b\u0438 Map&lt;K,Set&lt;V&gt;&gt;, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 guava \u0431\u044b\u043b\u0438 \u0432\u0432\u0435\u0434\u0435\u043d\u044b Multimap, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043a\u043e\u0433\u0434\u0430<br \/>   \u043e\u0434\u0438\u043d \u043a\u043b\u044e\u0447 \u0438 \u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432\u0440\u043e\u0434\u0435 Map&lt;K,Set&lt;V&gt;&gt;, Multimap \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0443\u0434\u043e\u0431\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432.   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ArrayListMultimap.html\">ArrayListMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/HashMultimap.html\">HashMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/LinkedListMultimap.html\">LinkedListMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/LinkedHashMultimap.html\">LinkedHashMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/TreeMultimap.html\">TreeMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableListMultimap.html\">ImmutableListMultimap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableSetMultimap.html\">ImmutableSetMultimap<\/a>   <\/td>\n<td> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 \u043e\u0434\u0438\u043d \u043a\u043e \u043c\u043d\u043e\u0433\u0438\u043c, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a:<br \/>   \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u2014 \u0443\u0447\u0435\u043d\u0438\u043a\u0438<br \/>   \u043e\u0442\u0434\u0435\u043b\u044c \u2014 \u0440\u0430\u0431\u043e\u0442\u043d\u0438\u043a\u0438<br \/>   \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a \u2014 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0435   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/BiMap.html\"><b>BiMap<\/b><\/a>   <\/td>\n<td>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c Map&#8217;\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0442\u043e \u0435\u0441\u0442\u044c<br \/>   \u043a\u043e\u0433\u0434\u0430 \u043a\u043b\u044e\u0447 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043c\u0435\u0441\u0442\u0430\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435<br \/>   \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e \u0440\u0443\u0441\u0441\u043a\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443 \u2014 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0435, \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430\u043e\u0431\u0440\u043e\u0442 \u043f\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c\u0443-\u0440\u0443\u0441\u0441\u043a\u043e\u0435). \u041e\u0431\u044b\u0447\u043d\u043e, \u044d\u0442\u043e<br \/>   \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0434\u0432\u0443\u0445 Map, \u0433\u0434\u0435 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u044e\u04471-\u043a\u043b\u044e\u04472, \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043b\u044e\u04472-\u043a\u043b\u044e\u04471). BiMap \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442<br \/>   \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u044d\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u043e\u0448\u0438\u0431\u043a\u0438<br \/>   \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/HashBiMap.html\">HashBiMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableBiMap.html\">ImmutableBiMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/EnumBiMap.html\">EnumBiMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/EnumHashBiMap.html\">EnumHashBiMap<\/a>   <\/td>\n<td> \u2014 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e,<br \/>   \u2014 \u043b\u044e\u0431\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b,   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/Table.html\"><b>Table<\/b><\/a>   <\/td>\n<td>\u042d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u0438\u0434\u0430 Map&lt;FirstName, Map&lt;LastName, Person&gt;&gt;,<br \/>   \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/HashBasedTable.html\">HashBasedTable<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/TreeBasedTable.html\">TreeBasedTable<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableTable.html\">ImmutableTable<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ArrayTable.html\">ArrayTable<\/a>   <\/td>\n<td> \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u0432 Excel<br \/>   \u2014 \u043b\u044e\u0431\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432,   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ClassToInstanceMap.html\"><b>ClassToInstanceMap<\/b><\/a>   <\/td>\n<td>\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 Map&#8217;e \u043d\u0435 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0430 \u0442\u0438\u043f-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u0430\u044f<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f. \u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Map<br \/>   &lt;Class<br \/>   &lt;? extends B&gt;, B&gt;   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/MutableClassToInstanceMap.html\">MutableClassToInstanceMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableClassToInstanceMap.html\">ImmutableClassToInstanceMap<\/a>.   <\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/RangeSet.html\"><b>RangeSet<\/b><\/a>   <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u043c\u043e\u0433\u0443\u0442<br \/>   \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u043e\u043c.   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableRangeSet.html\">ImmutableRangeSet<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/TreeRangeSet.html\">TreeRangeSet<\/a>   <\/td>\n<td>\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438<br \/>   \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/RangeMap.html\"><b>RangeMap<\/b><\/a>   <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043d\u0430 RangeSet, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c.<\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/ImmutableRangeMap.html\">ImmutableRangeMap<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/collect\/TreeRangeMap.html\">TreeRangeMap<\/a>   <\/td>\n<td>\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438<br \/>   \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/cache\/LoadingCache.html\"><b>LoadingCache<\/b><\/a>   <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043d\u0430 ConcurrentMap, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439<br \/>   \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u044d\u0448\u0435\u0439, \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0432\u043e\u0434\u0430 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0445 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0437\u0430<br \/>   \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0442.\u043f. \u0437\u0430\u0434\u0430\u0447   <\/td>\n<td> <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/cache\/ForwardingLoadingCache.html\">ForwardingLoadingCache<\/a>,<br \/>   <a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/cache\/ForwardingLoadingCache.SimpleForwardingLoadingCache.html\">ForwardingLoadingCache.SimpleForwardingLoadingCache<\/a>   <\/td>\n<td>\u043a\u044d\u0448\u0438,<br \/>   \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0445<br \/>   \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0432\u0432\u043e\u0434\u0430 \u043f\u0430\u0440\u043e\u043b\u044f<br \/>   \u0438 \u0442.\u043f.   <\/td>\n<\/tr>\n<\/table>\n<h3><b>3.2 \u041d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438\u0437 Apache Commons Collections<\/b><\/h3>\n<p>  <b>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/b>: <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/source-repository.html\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b<\/a>, <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/userguide.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/a>, <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/overview-summary.html\">javadoc<\/a>.<br \/>  \u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041caven,Gradle,Ivy<\/b><\/p>\n<div class=\"spoiler_text\">Maven  <\/p>\n<pre><code class=\"xml\">&lt;dependency&gt; \t&lt;groupId&gt;org.apache.commons&lt;\/groupId&gt; \t&lt;artifactId&gt;commons-collections4&lt;\/artifactId&gt; \t&lt;version&gt;4.0&lt;\/version&gt; &lt;\/dependency&gt; <\/code><\/pre>\n<p>  Gradle  <\/p>\n<pre><code class=\"xml\">'org.apache.commons:commons-collections4:4.0' <\/code><\/pre>\n<p>  Ivy  <\/p>\n<pre><code class=\"xml\">&lt;dependency org=&quot;org.apache.commons&quot; name=&quot;commons-collections4&quot; rev=&quot;4.0&quot;\/&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/b>: \u0435\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.   <\/p>\n<table>\n<tr>\n<th width=\"100\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th width=\"185\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/th>\n<th width=\"200\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/th>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/Unmodifiable.html\"><b>Unmodifiable<\/b><\/a>   <\/td>\n<td>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 Immutable \u043a\u043b\u0430\u0441\u0441\u0430\u043c guava<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/UnmodifiableBag.html\">UnmodifiableBag<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bidimap\/UnmodifiableBidiMap.html\">UnmodifiableBidiMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/collection\/UnmodifiableCollection.html\">UnmodifiableCollection<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/list\/UnmodifiableList.html\">UnmodifiableList<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/UnmodifiableMap.html\">UnmodifiableMap<\/a><br \/>   \u0438 \u0442.\u043f.   <\/td>\n<td>\u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/IterableMap.html\"><b>IterableMap<\/b><\/a>   <\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Map, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e Map \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0431\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f entry set. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<br \/>   \u043f\u043e\u0447\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445 Map \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435.   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/HashedMap.html\">HashedMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/LinkedMap.html\">LinkedMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/ListOrderedMap.html\">ListOrderedMap<\/a><br \/>   \u0438 \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445   <\/td>\n<td>\u0422\u0430\u043a\u0438\u0435 \u0436\u0435 \u043a\u0430\u043a \u0443 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 map&#8217;\u044b<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/OrderedMap.html\"><b>OrderedMap<\/b><\/a>   <\/td>\n<td>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c Map&#8217;\u044b, \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/LinkedMap.html\">LinkedMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/ListOrderedMap.html\">ListOrderedMap<\/a>   <\/td>\n<td>\u0412 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e List \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e Map&#8217;\u0430<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/BidiMap.html\"><b>BidiMap<\/b><\/a>   <\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 BiMap \u0438\u0437 Guava, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u043b\u044e\u0447\u0443, \u0442\u0430\u043a \u0438 \u043a\u043b\u044e\u0447 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bidimap\/TreeBidiMap.html\">TreeBidiMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bidimap\/DualHashBidiMap.html\">DualHashBidiMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bidimap\/DualLinkedHashBidiMap.html\">DualLinkedHashBidiMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bidimap\/DualTreeBidiMap.html\">DualTreeBidiMap<\/a><br \/>   \u0438 \u0442.\u043f.   <\/td>\n<td>\u041b\u044e\u0431\u044b\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u0438\u043d \u043a \u043e\u0434\u043d\u043e\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/Bag.html\"><b>Bags<\/b><\/a>   <\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 Multiset \u0438\u0437 Guava, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/CollectionBag.html\">CollectionBag<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/HashBag.html\">HashBag<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/SynchronizedBag.html\">SynchronizedBag<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/TreeBag.html\">TreeBag<\/a><br \/>   \u0438 \u0434\u0440\u0443\u0433\u0438\u0435   <\/td>\n<td>\u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b-\u0432\u0430 \u043b\u044e\u0431\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/BoundedCollection.html\"><b>BoundedCollection<\/b><\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/BoundedMap.html\">BoundedMap<\/a>   <\/td>\n<td>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0441\u0432\u0435\u0440\u0445\u0443<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/queue\/CircularFifoQueue.html\">CircularFifoQueue<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/list\/FixedSizeList.html\">FixedSizeList<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/FixedSizeMap.html\">FixedSizeMap<\/a>,<br \/>   <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/LRUMap.html\">LRUMap<\/a>   <\/td>\n<td>\u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0435\u0442\u0435 \u0447\u0442\u043e \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430<br \/>   \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432   <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/MultiMap.html\"><b>MultiMap<\/b><\/a>   <\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 Multimap \u0438\u0437 Guava, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430<\/td>\n<td>MultiValueMap<\/td>\n<td>\u0434\u043b\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0441\u043e \u0441\u0432\u044f\u0437\u044f\u043c\u0438 \u043e\u0434\u0438\u043d \u043a\u043b\u044e\u0447 \u2013 \u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/Trie.html\"><b>Trie<\/b><\/a>   <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/td>\n<td>PatriciaTrie<\/td>\n<td>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/list\/TreeList.html\"><b>TreeList<\/b><\/a>   <\/td>\n<td>\u0417\u0430\u043c\u0435\u043d\u0430 ArrayList \u0438 LinkedList, \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0441\u043f\u0438\u0441\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0434\u0435\u0440\u0435\u0432\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0441\u043f\u0438\u0441\u043a\u0430.<\/td>\n<td>TreeList<\/td>\n<td>\u0437\u0430\u043c\u0435\u043d\u0430 LinkedList \u043f\u0440\u0438 \u0447\u0430\u0441\u0442\u044b\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445\/\u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f\u0445 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0441\u043f\u0438\u0441\u043a\u0430<\/td>\n<\/tr>\n<\/table>\n<h3><b>3.3 Trove \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/h3>\n<p>   \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, Trove \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u044b\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0438\u0434\u044b<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0437\u0430\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445:<br \/>   \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b Java \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u043e\u0431\u0435\u0440\u0442\u043a\u0438, \u0447\u0442\u043e \u0440\u0435\u0437\u043a\u043e<br \/>   \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. Trove \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439,<br \/>   \u043a\u043b\u044e\u0447\u0438 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b.<\/p>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0435 \u0441\u0430\u043c\u044b\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 HashMap \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435, \u0430 HashSet \u044d\u0442\u043e HashMap \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0439. Trove \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  <b>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f:<\/b> <a href=\"http:\/\/trove.starlight-systems.com\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, <a href=\"https:\/\/bitbucket.org\/trove4j\/trove\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b<\/a>, <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/\">javadoc<\/a>.<br \/>  \u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Maven, Gradle, Ivy<\/b><\/p>\n<div class=\"spoiler_text\">Maven  <\/p>\n<pre><code class=\"xml\">&lt;dependency&gt; \t&lt;groupId&gt;net.sf.trove4j&lt;\/groupId&gt; \t&lt;artifactId&gt;trove4j&lt;\/artifactId&gt; \t&lt;version&gt;3.0.3&lt;\/version&gt; &lt;\/dependency&gt; <\/code><\/pre>\n<p>  Gradle  <\/p>\n<pre><code class=\"xml\">'net.sf.trove4j:trove4j:3.0.3' <\/code><\/pre>\n<p>  Ivy  <\/p>\n<pre><code class=\"xml\">&lt;dependency org=&quot;net.sf.trove4j&quot; name=&quot;trove4j&quot; rev=&quot;3.0.3&quot;\/&gt; <\/code><\/pre>\n<\/div>\n<\/div>\n<table>\n<tr>\n<th width=\"120\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"100\">\u0410\u043d\u0430\u043b\u043e\u0433 JDK<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/map\/hash\/THashMap.html\">THashMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c &quot;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>&quot; \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 HashMap \u0433\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9C.D0.B5.D1.82.D0.BE.D0.B4_.D1.86.D0.B5.D0.BF.D0.BE.D1.87.D0.B5.D0.BA\">\u043c\u0435\u0442\u043e\u0434 \u0446\u0435\u043f\u043e\u0447\u0435\u043a<\/a>). \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Node, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u0441\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u0438, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.  <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/set\/hash\/THashSet.html\">THashSet<\/a><\/td>\n<td><a href=\"https:\/\/www.google.pl\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CBwQFjAAahUKEwiVzK_m49vIAhWh33IKHefACK4&amp;url=https%3A%2F%2Fdocs.oracle.com%2Fjavase%2F8%2Fdocs%2Fapi%2Fjava%2Futil%2FHashSet.html&amp;usg=AFQjCNGmyLjywjCtkqKIp64UrriPBWfrrg\">HashSet<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c &quot;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>&quot; \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/set\/hash\/TLinkedHashSet.html\">TLinkedHashSet<\/a><\/td>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 LinkedHashSet, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c &quot;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>&quot;<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/list\/linked\/TLinkedList.html\">TLinkedList<\/a><\/td>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0441\u0432\u044f\u0437\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u044f\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435.<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/list\/array\/TByteArrayList.html\">TByteArrayList<\/a>,<br \/>   <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/list\/array\/TIntArrayList.html\">TIntArrayList<\/a> \u0438 \u0442.\u043f.<\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 ArrayList, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0440\u0435\u0437\u043a\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u0415\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0435\u043c\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f]ArrayList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/list\/linked\/TCharLinkedList.html\">TCharLinkedList<\/a>,<br \/>   <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/list\/linked\/TFloatLinkedList.html\">TFloatLinkedList<\/a> \u0438 \u0442.\u043f.<\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 LinkedList \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u043c\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f]LinkedList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/stack\/array\/TByteArrayStack.html\">TByteArrayStack<\/a>,<br \/>   <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/stack\/array\/TLongArrayStack.html\">TLongArrayStack<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDequery<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f]LinkedList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/queue\/TIntQueue.html\">TIntQueue<\/a>,<br \/>   <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/queue\/TCharQueue.html\">TCharQueue<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDequery<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f]Queue<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/set\/hash\/TShortHashSet.html\">TShortHashSet<\/a>,<br \/>   <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/set\/hash\/TDoubleHashSet.html\">TDoubleHashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Set \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f]HashSet<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/map\/hash\/TLongLongHashMap.html\">TLongLongHashMap<\/a>,<br \/>  <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/map\/hash\/TFloatObjectHashMap.html\">TFloatObjectHashMap<\/a>,<br \/>  <a href=\"http:\/\/trove4j.sourceforge.net\/javadocs\/gnu\/trove\/map\/hash\/TShortObjectHashMap.html\">TShortObjectHashMap<\/a> \u0438 \u0442.\u043f.<\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Map \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0#.D0.9E.D1.82.D0.BA.D1.80.D1.8B.D1.82.D0.B0.D1.8F_.D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B0.D1.86.D0.B8.D1.8F\">\u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438<\/a>, \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f T[\u0422\u0438\u043f][\u0422\u0438\u043f]HashMap, \u0433\u0434\u0435 \u0442\u0438\u043f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c Object<\/td>\n<\/tr>\n<\/table>\n<h3><b>3.4 GC-collections \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/h3>\n<p>   \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u043d\u0435\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438 \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0442\u043e \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u043f\u043e\u0438\u0441\u043a\u0430) \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Collections.sort \u0438 \u0442.\u043f. \u043c\u0435\u0442\u043e\u0434\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 GC-collections \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0438\u0434\u0435\u044e \u00ab\u0431\u043e\u0433\u0430\u0442\u044b\u0445\u00bb \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (rich collections), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043f\u043e\u0438\u0441\u043a\u0430, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e Collections.sort(list) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e list.sort. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u044f\u0434 \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.<br \/>  <b>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/b>: <a href=\"https:\/\/github.com\/goldmansachs\/gs-collections\/wiki\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, <a href=\"https:\/\/github.com\/goldmansachs\/gs-collections\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b<\/a>, <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/documents\/GS%20Collections%20Reference%20Guide%205.0.0.pdf\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/a>, <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/index.html\">javadoc<\/a>.<br \/>  \u041a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041caven,Gradle,Ivy<\/b><\/p>\n<div class=\"spoiler_text\"><b>Maven<\/b>  <\/p>\n<pre><code class=\"xml\">&lt;dependency&gt;   &lt;groupId&gt;com.goldmansachs&lt;\/groupId&gt;   &lt;artifactId&gt;gs-collections-api&lt;\/artifactId&gt;   &lt;version&gt;6.2.0&lt;\/version&gt; &lt;\/dependency&gt;  &lt;dependency&gt;   &lt;groupId&gt;com.goldmansachs&lt;\/groupId&gt;   &lt;artifactId&gt;gs-collections&lt;\/artifactId&gt;   &lt;version&gt;6.2.0&lt;\/version&gt; &lt;\/dependency&gt;  &lt;dependency&gt;   &lt;groupId&gt;com.goldmansachs&lt;\/groupId&gt;   &lt;artifactId&gt;gs-collections-testutils&lt;\/artifactId&gt;   &lt;version&gt;6.2.0&lt;\/version&gt;   &lt;scope&gt;test&lt;\/scope&gt; &lt;\/dependency&gt;  &lt;dependency&gt;   &lt;groupId&gt;com.goldmansachs&lt;\/groupId&gt;   &lt;artifactId&gt;gs-collections-forkjoin&lt;\/artifactId&gt;   &lt;version&gt;6.2.0&lt;\/version&gt; &lt;\/dependency&gt;  <\/code><\/pre>\n<p><b>Gradle<\/b><\/p>\n<pre><code class=\"xml\">compile 'com.goldmansachs:gs-collections-api:6.2.0' compile 'com.goldmansachs:gs-collections:6.2.0' testCompile 'com.goldmansachs:gs-collections-testutils:6.2.0' compile 'com.goldmansachs:gs-collections-forkjoin:6.2.0' <\/code><\/pre>\n<p>  <b>Ivy<\/b>  <\/p>\n<pre><code class=\"xml\">&lt;dependency org=&quot;com.goldmansachs&quot; name=&quot;gs-collections-api&quot; rev=&quot;6.2.0&quot; \/&gt; &lt;dependency org=&quot;com.goldmansachs&quot; name=&quot;gs-collections&quot; rev=&quot;6.2.0&quot; \/&gt; &lt;dependency org=&quot;com.goldmansachs&quot; name=&quot;gs-collections-testutils&quot; rev=&quot;6.2.0&quot; \/&gt; &lt;dependency org=&quot;com.goldmansachs&quot; name=&quot;gs-collections-forkjoin&quot; rev=&quot;6.2.0&quot;\/&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<table>\n<tr>\n<th width=\"120\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th width=\"150\">\u0410\u043d\u0430\u043b\u043e\u0433 JDK<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/list\/mutable\/FastList.html\">FastList<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 ArrayList \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0440\u043e\u0434\u0435 sort, select \u0438 \u0442.\u043f. \u043f\u0440\u044f\u043c\u043e \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/mutable\/UnifiedSet.html\">UnifiedSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 HashSet. \u0421\u043c FastList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/sorted\/mutable\/TreeSortedSet.html\">TreeSortedSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeSet.html\">TreeSet<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 TreeSet. \u0421\u043c FastList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/mutable\/UnifiedMap.html\">UnifiedMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 HashMap. \u0421\u043c FastList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/sorted\/mutable\/TreeSortedMap.html\">TreeSortedMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeMap.html\">TreeMap<\/a><\/td>\n<td>\u0410\u043d\u0430\u043b\u043e\u0433 TreeMap. \u0421\u043c FastList<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bimap\/mutable\/HashBiMap.html\">HashBiMap<\/a><\/td>\n<td>&#8212;<\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f BiMap, \u0441\u043c. Guava<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/HashBag.html\">HashBag<\/a><\/td>\n<td>&#8212;<\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Multiset, \u0441\u043c. Guava<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/sorted\/mutable\/TreeBag.html\">TreeBag<\/a><\/td>\n<td>&#8212;<\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e BiMap, \u0441\u043c. Guava<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/stack\/mutable\/ArrayStack.html\">ArrayStack<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a><\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0435\u043a\u0430 \u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u00ablast-in, first-out\u00bb, \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 \u043a\u043b\u0430\u0441\u0441 Stack JDK <\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/multimap\/list\/FastListMultimap.html\">FastListMultimap<\/a><\/td>\n<td>&#8212;<\/td>\n<td>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Multimap, \u0441\u043c. Guava<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/list\/mutable\/primitive\/IntArrayList.html\">IntArrayList<\/a>,<br \/>   <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/mutable\/primitive\/FloatHashSet.html\">FloatHashSet<\/a>,<br \/>   <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/stack\/mutable\/ArrayStack.html\">ArrayStack<\/a>,<br \/>   <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/HashBag.html\">HashBag<\/a>,<br \/>   <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/mutable\/primitive\/ByteIntHashMap.html\">ByteIntHashMap<\/a>    <\/td>\n<td>&#8212;<\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u0430\u043a \u0443 trove, \u043d\u043e \u043a\u0440\u043e\u043c\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432 JDK, \u0442\u0430\u043a \u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 Stack, Bag<\/td>\n<\/tr>\n<\/table>\n<h3><b>3.5 Fastutil \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/h3>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<br \/>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e: <a href=\"http:\/\/fastutil.di.unimi.it\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, <a href=\"https:\/\/github.com\/vigna\/fastutil\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b<\/a>, <a href=\"http:\/\/fastutil.di.unimi.it\/docs\/\">javadoc<\/a>  <\/p>\n<table>\n<tr>\n<th width=\"130\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>Byte2DoubleOpenHashMap,<br \/>   IntArrayList,<br \/>   IntArrayPriorityQueue<br \/>   \u0438 \u0442.\u043f.    <\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f [\u0422\u0438\u043f]ArrayList, [\u0422\u0438\u043f]ArrayPriorityQueue \u0438 \u0442.\u043f. \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u043b\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u0438 [\u0422\u0438\u043f\u041a\u043b\u044e\u0447\u0430]2[\u0422\u0438\u043f\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f]OpenHashMap \u0438 \u0442.\u043f. \u0434\u043b\u044f Map.<\/td>\n<\/tr>\n<tr>\n<td>IntBigList,<br \/>   DoubleOpenHashBigSet \u0438 \u0442.\u043f.<\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u0411\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u044d\u0442\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c long \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u043c\u0435\u0441\u0442\u043e int. \u0412\u043d\u0443\u0442\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u041d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0442\u0430\u043c \u0433\u0434\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 30%, \u043e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<\/tr>\n<\/table>\n<h3><b>3.6 \u041f\u0440\u043e\u0447\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h3>\n<p>  \u041a\u0440\u043e\u043c\u0435 Trove \u0438 Fastutil \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439:<br \/>  1) <b><a href=\"http:\/\/labs.carrotsearch.com\/hppc.html\">HPPC<\/a><\/b> \u2014 High Performance Primitive Collections for Java, \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c \u0438\u0437 JDK,<br \/>  2) <b><a href=\"https:\/\/github.com\/OpenHFT\/Koloboke\">Koloboke<\/a><\/b> (\u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u043c\u044f HFTC) \u2014 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0437 \u0438\u043c\u0435\u043d\u0438 \u044d\u0442\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 (Roman Leventov) \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"http:\/\/openhft.net\/\">OpenHFT<\/a>. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0442\u0430\u043a \u0436\u0435 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044d\u0442\u0443 <a href=\"http:\/\/java-performance.info\/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 HashMap \u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435, \u0437\u0430\u043c\u0435\u0440\u044f\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, HashMap jdk \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0447\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438 \u043e\u0442 trove), \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u043e\u0439 \u0447\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<h2><b>IV. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445<\/b><\/h2>\n<h3><b>4.1 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 (MultiSet\/Bag) \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 guava, Apache Commons Collections \u0438 GS<br \/>   Collections <\/b><\/h3>\n<p>   \u0418\u0442\u0430\u043a, \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u043a\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435, \u043d\u043e \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<br \/>   \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0432 \u043d\u0435\u0433\u043e. \u0412 JDK \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 Map<br \/>   &lt;T, Integer&gt;, \u043d\u043e, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u0434\u0430. \u0421\u0440\u0430\u0432\u043d\u0438\u043c<br \/>   \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/b>: \u0435\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.   <\/p>\n<table>\n<tr>\n<th width=\"170\"><b>\u0422\u0438\u043f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/th>\n<th><b>Guava<\/b><\/th>\n<th><b>Apache Commons Collections<\/b><\/th>\n<th><b>GS Collections<\/b><\/th>\n<th><b>JDK<\/b><\/th>\n<\/tr>\n<tr>\n<td>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/HashMultiset.html\">HashMultiset<\/a>   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/bag\/HashBag.html\">HashBag<\/a>   <\/td>\n<td> <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/HashBag.html\">HashBag<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap&lt;String, Integer&gt;<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/TreeMultiset.html\">TreeMultiset<\/a>   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/TreeBag.html\">TreeBag<\/a>   <\/td>\n<td> <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/sorted\/mutable\/TreeBag.html\">TreeBag<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeMap.html\">TreeMap&lt;String, Integer&gt;<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u0412 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/LinkedHashMultiset.html\">LinkedHashMultiset<\/a>   <\/td>\n<td>&#8212;<\/td>\n<td>&#8212;<\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap&lt;String, Integere&gt;<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/ConcurrentHashMultiset.html\">ConcurrentHashMultiset<\/a>   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/bag\/SynchronizedBag.html\">SynchronizedBag<\/a>   <\/td>\n<td> <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/SynchronizedBag.html\">SynchronizedBag<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collections.html\">Collections.synchronizedMap(HashMap&lt;String, Integer&gt;)<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 \u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<\/td>\n<td>&#8212;<\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/bag\/SynchronizedSortedBag.html\">SynchronizedSortedBag<\/a>   <\/td>\n<td> <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/sorted\/mutable\/SynchronizedSortedBag.html\">SynchronizedSortedBag<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collections.html\">Collections.synchronizedSortedMap(TreeMap&lt;String, Integer&gt;)<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/ImmutableMultiset.html\">ImmutableMultiset<\/a>   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/bag\/UnmodifiableBag.html\">UnmodifiableBag<\/a>   <\/td>\n<td> <a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/UnmodifiableBag.html\">UnmodifiableBag<\/a>   <\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collections.html\">Collections.unmodifiableMap(HashMap&lt;String, Integer&gt;)<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<\/td>\n<td> <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/ImmutableSortedMultiset.html\">ImmutableSortedMultiset<\/a>   <\/td>\n<td> <a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-3.2.1\/org\/apache\/commons\/collections\/bag\/UnmodifiableSortedBag.html\">UnmodifiableSortedBag<\/a>   <\/td>\n<td><a href=\"http:\/\/UnmodifiableSortedBag\">UnmodifiableSortedBag<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/Collections.html\">Collections.unmodifiableSortedMap(TreeMap&lt;String, Integer&gt;)<\/a><\/td>\n<\/tr>\n<\/table>\n<h4><b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 (MultiSet\/Bag) \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435<\/b><\/h4>\n<p>   <b>\u0415\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0430<\/b>: \u0434\u0430\u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u00abHello World! Hello All! Hi World!\u00bb, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0451 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435<br \/>   \u0441\u043b\u043e\u0432\u0430 \u0433\u0434\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u0435\u043b, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0433\u043e<br \/>   \u0441\u043b\u043e\u0432\u0430, \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>   1. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 Multiset \u043e\u0442 Guava:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c HashMultiset \u043e\u0442 guava \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d.   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Multiset&lt;String&gt; multiset = HashMultiset.create(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(multiset); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello x 2, World! x 2, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiset.elementSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + multiset.count(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + multiset.count(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + multiset.count(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + multiset.count(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + multiset.count(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiset.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiset.elementSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c TreeMultiset \u043e\u0442 guava \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443.   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Multiset&lt;String&gt; multiset = TreeMultiset.create(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(multiset); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello x 2, Hi, World! x 2]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiset.elementSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hi, World!]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + multiset.count(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + multiset.count(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + multiset.count(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + multiset.count(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + multiset.count(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiset.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiset.elementSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c LinkedHashMultisetTest \u043e\u0442 guava \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Multiset&lt;String&gt; multiset = LinkedHashMultiset.create(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(multiset); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello x 2, World! x 2, All!, Hi]- \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e                 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiset.elementSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi] - \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e                 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + multiset.count(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + multiset.count(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + multiset.count(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + multiset.count(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + multiset.count(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiset.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiset.elementSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c ConcurrentHashMultiset \u043e\u0442 guava \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u043b\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438<br \/>   \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f HashMultiset   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Multiset&lt;String&gt; multiset = ConcurrentHashMultiset.create(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(multiset); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello x 2, World! x 2, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiset.elementSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + multiset.count(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + multiset.count(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + multiset.count(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + multiset.count(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + multiset.count(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiset.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiset.elementSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   2. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 Bag \u043e\u0442 Apache Commons Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HashBag \u0438\u0437 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d.   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Bag bag = new HashBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1:Hi,2:Hello,2:World!,1:All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(bag.uniqueSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;Hello = &quot; + bag.getCount(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;World = &quot; + bag.getCount(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;All = &quot; + bag.getCount(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Hi = &quot; + bag.getCount(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Empty = &quot; + bag.getCount(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435             System.out.println(bag.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432             System.out.println(bag.uniqueSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 TreeBag \u0438\u0437 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443.   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Bag bag = new TreeBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1:All!,2:Hello,1:Hi,2:World!]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(bag.uniqueSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hi, World!]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;Hello = &quot; + bag.getCount(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;World = &quot; + bag.getCount(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;All = &quot; + bag.getCount(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Hi = &quot; + bag.getCount(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Empty = &quot; + bag.getCount(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435             System.out.println(bag.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432             System.out.println(bag.uniqueSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 SynchronizedBag \u0438\u0437 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438<br \/>   \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f HashBag   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Bag bag = SynchronizedBag.synchronizedBag(new HashBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;))));              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1:Hi,2:Hello,2:World!,1:All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(bag.uniqueSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;Hello = &quot; + bag.getCount(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;World = &quot; + bag.getCount(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;All = &quot; + bag.getCount(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Hi = &quot; + bag.getCount(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Empty = &quot; + bag.getCount(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435             System.out.println(bag.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432             System.out.println(bag.uniqueSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 SynchronizedSortedBag \u0438\u0437 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(multiset) \u0438 \u0432<br \/>   System.out.println(multiset.elementSet()) \u2014 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443, \u0442\u0430\u043a \u043a\u0430\u043a<br \/>   \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f SortedBag   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             Bag bag = SynchronizedSortedBag.synchronizedBag(new TreeBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;))));              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1:All!,2:Hello,1:Hi,2:World!]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(bag.uniqueSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hi, World!]- \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435               \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;Hello = &quot; + bag.getCount(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;World = &quot; + bag.getCount(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2             System.out.println(&quot;All = &quot; + bag.getCount(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Hi = &quot; + bag.getCount(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1             System.out.println(&quot;Empty = &quot; + bag.getCount(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435             System.out.println(bag.size()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432             System.out.println(bag.uniqueSet().size()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   3. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 Bag \u043e\u0442 GS Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 MutableBag \u0438\u0437 GS Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(bag) \u0438 \u0432 System.out.println(bag.toSet()) \u2014 \u043d\u0435<br \/>   \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             MutableBag&lt;String&gt; bag = HashBag.newBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, World!, World!, Hello, Hello, All!]- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(bag.toSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + bag.occurrencesOf(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + bag.occurrencesOf(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + bag.occurrencesOf(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + bag.occurrencesOf(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + bag.occurrencesOf(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(bag.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(bag.toSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 MutableSortedBag \u0438\u0437 GS Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 System.out.println(bag) \u0438 \u0432 System.out.println(bag.toSortedSet()) \u2014  \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u043c, \u0442.\u0435. \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             MutableSortedBag&lt;String&gt; bag = TreeBag.newBag(Arrays.asList(INPUT_TEXT.split(&quot; &quot;)));                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(bag); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hello, Hi, World!, World!]- \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(bag.toSortedSet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hi, World!]- \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + bag.occurrencesOf(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + bag.occurrencesOf(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + bag.occurrencesOf(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + bag.occurrencesOf(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + bag.occurrencesOf(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 0                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(bag.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(bag.toSet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   4. \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c JDK \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 multiSet \u0447\u0435\u0440\u0435\u0437 HashMap   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u042d\u043c\u0443\u043b\u044f\u0446\u0438\u044f multiSet \u0447\u0435\u0440\u0435\u0437 HashMap<\/b><\/p>\n<div class=\"spoiler_text\"> \u041a\u0430\u043a \u0432\u044b \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043a\u043e\u0434\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u0443 \u043b\u044e\u0431\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 multiSet \u0438\u043b\u0438<br \/>   Bag.   <\/p>\n<pre><code class=\"java\">            \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             List&lt;String&gt; listResult = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e Multiset c \u043f\u043e\u043c\u043e\u0449\u044c\u044e HashMap \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c                 Map&lt;String, Integer&gt; fakeMultiset = new HashMap&lt;String,Integer&gt;(listResult.size());                  for(String word: listResult) {                 Integer cnt = fakeMultiset.get(word);                 fakeMultiset.put(word, cnt == null ? 1 : cnt + 1);                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432                 System.out.println(fakeMultiset); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {World!=2, Hi=1, Hello=2, All!=1}- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(fakeMultiset.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [World!, Hi, Hello, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443                 System.out.println(&quot;Hello = &quot; + fakeMultiset.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;World = &quot; + fakeMultiset.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 2                 System.out.println(&quot;All = &quot; + fakeMultiset.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Hi = &quot; + fakeMultiset.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 1                 System.out.println(&quot;Empty = &quot; + fakeMultiset.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 null                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 Integer cnt = 0;                 for (Integer wordCount : fakeMultiset.values()){                 cnt += wordCount;                 }                 System.out.println(cnt); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(fakeMultiset.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<h3><b>4.2 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Multimap \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 guava, Apache Commons Collections \u0438 GS Collections<\/b><\/h3>\n<p>  \u0418\u0442\u0430\u043a, Multimap \u044d\u0442\u043e map, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0439<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c<br \/>   \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0430\u043c \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u2014 \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b,<br \/>   \u0430\u043d\u0430\u043b\u043e\u0433 \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2014 \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043a\u043b\u044e\u0447\u0438 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, JDK \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>   JDK \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/b>: \u0435\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.   <\/p>\n<table>\n<tr>\n<th>\u041f\u043e\u0440\u044f\u0434\u043e\u043a<br \/>   \u043a\u043b\u044e\u0447\u0435\u0439   <\/th>\n<th>\u041f\u043e\u0440\u044f\u0434\u043e\u043a<br \/>   \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439   <\/th>\n<th>\u0414\u0443\u0431-<br \/>   \u043b\u0438\u043a\u0430-<br \/>   \u0442\u044b   <\/th>\n<th>\u0410\u043d\u0430\u043b\u043e\u0433<br \/>   \u043a\u043b\u044e\u0447\u0435\u0439   <\/th>\n<th>\u0410\u043d\u0430\u043b\u043e\u0433<br \/>   \u0437\u043d\u0430\u0447\u0435-<br \/>   \u043d\u0438\u0439   <\/th>\n<th>Guava<\/th>\n<th>Apache<br \/>   Commons<br \/>   Collections   <\/th>\n<th>GS<br \/>   Collections   <\/th>\n<th>JDK<\/th>\n<\/tr>\n<tr>\n<td>\u043d\u0435 \u0437\u0430\u0434\u0430\u043d<\/td>\n<td>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u0435-<br \/>   \u043d\u0438\u044f   <\/td>\n<td>\u0434\u0430<\/td>\n<td>HashMap<\/td>\n<td>ArrayList<\/td>\n<td>ArrayList-<br \/>   Multimap   <\/td>\n<td>MultiValueMap<\/td>\n<td>FastList-<br \/>   Multimap   <\/td>\n<td>HashMap&lt;K,<br \/>   ArrayList&lt;V&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td>\u043d\u0435 \u0437\u0430\u0434\u0430\u043d<\/td>\n<td>\u043d\u0435 \u0437\u0430\u0434\u0430\u043d<\/td>\n<td>\u043d\u0435\u0442<\/td>\n<td>HashMap<\/td>\n<td>HashSet<\/td>\n<td>HashMultimap<\/td>\n<td>MultiValueMap.<br \/>   multiValueMap(<br \/>   new HashMap&lt;K,<br \/>   Set&gt;(),<br \/>   HashSet.class);   <\/td>\n<td>UnifiedSet-<br \/>   Multimap   <\/td>\n<td>HashMap&lt;K,<br \/>   HashSet&lt;V&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td>\u043d\u0435 \u0437\u0430\u0434\u0430\u043d<\/td>\n<td>\u043e\u0442\u0441\u043e\u0440\u0442\u0438-<br \/>   \u0440\u043e\u0432\u0430\u043d   <\/td>\n<td>\u043d\u0435\u0442<\/td>\n<td>HashMap<\/td>\n<td>TreeSet<\/td>\n<td>Multimaps.<br \/>   newMultimap(<br \/>   HashMap,<br \/>   Supplier<br \/>   &lt;TreeSet&gt;)   <\/td>\n<td>MultiValueMap.<br \/>   multiValueMap(<br \/>   new HashMap&lt;K,<br \/>   Set&gt;(), TreeSet.class);   <\/td>\n<td>TreeSortedSet-<br \/>   Multimap   <\/td>\n<td>HashMap&lt;K,<br \/>   TreeSet&lt;V&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u0435-<br \/>   \u043d\u0438\u044f   <\/td>\n<td>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u0435-<br \/>   \u043d\u0438\u044f   <\/td>\n<td>\u0434\u0430<\/td>\n<td>Linked<br \/>   HashMap   <\/td>\n<td>ArrayList<\/td>\n<td>LinkedList-<br \/>   Multimap   <\/td>\n<td>MultiValueMap.<br \/>   multiValueMap(new<br \/>   LinkedHashMap&lt;K,<br \/>   List&gt;(), ArrayList.class);   <\/td>\n<td><\/td>\n<td>LinkedHashMap&lt;<br \/>   K, ArrayList&lt;V&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u0435-<br \/>   \u043d\u0438\u044f   <\/td>\n<td>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<br \/>   \u0434\u043e\u0431\u0430\u0432\u043b\u0435-<br \/>   \u043d\u0438\u044f   <\/td>\n<td>\u043d\u0435\u0442<\/td>\n<td>LinkedHash-<br \/>   Multimap   <\/td>\n<td>Linked-<br \/>   HashSet   <\/td>\n<td>LinkedHash-<br \/>   Multimap   <\/td>\n<td>MultiValueMap.<br \/>   multiValueMap(new<br \/>   LinkedHashMap&lt;K, Set&gt;(),<br \/>   LinkedHashSet.class);   <\/td>\n<td><\/td>\n<td>LinkedHashMap&lt;K,<br \/>   LinkedHashSet&lt;V&gt;&gt;<\/td>\n<\/tr>\n<tr>\n<td>\u043e\u0442\u0441\u043e\u0440\u0442\u0438-<br \/>   \u0440\u043e\u0432\u0430\u043d   <\/td>\n<td>\u043e\u0442\u0441\u043e\u0440\u0442\u0438-<br \/>   \u0440\u043e\u0432\u0430\u043d   <\/td>\n<td>\u043d\u0435\u0442<\/td>\n<td>TreeMap<\/td>\n<td>TreeSet<\/td>\n<td>TreeMultimap<\/td>\n<td>MultiValueMap.<br \/>   multiValueMap(<br \/>   new TreeMap&lt;K,<br \/>   Set&gt;(),TreeSet.class);   <\/td>\n<td><\/td>\n<td>TreeMap&lt;K,<br \/>   TreeSet&lt;V&gt;&gt;<\/td>\n<\/tr>\n<\/table>\n<p>   \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 Apache Commons Collections \u0435\u0441\u0442\u044c \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e<br \/>   \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438. \u0412 guava \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c<br \/>   \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u043d\u0430\u0434 \u043b\u044e\u0431\u043e\u0439 map&#8217;\u0430\u043c\u0438 \u0438 \u043b\u044e\u0431\u044b\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412 GS Collections \u0435\u0441\u0442\u044c \u0442\u0430\u043a \u0436\u0435<br \/>   \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f multimap \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 Bag (HashBagMultimap), \u0441\u043c. multiset \u0438 multimap.<\/p>\n<h4><b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Multimap \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435<\/b><\/h4>\n<p>   <b>\u0415\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0430<\/b>: \u0434\u0430\u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u00abHello World! Hello All! Hi World!\u00bb, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0451 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435<br \/>   \u0441\u043b\u043e\u0432\u0430 \u0433\u0434\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u0435\u043b \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0436\u0434\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435, \u043d\u043e \u0438 \u0432\u0441\u0435<br \/>   \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u0441\u0442\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e Hello \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0438 \u0442\u0440\u0435\u0442\u044c\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438 \u0442.\u0434.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>   1. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 Multimap \u043e\u0442 Guava:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c HashMultimap \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439<br \/>   \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 HashMap, \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 HashSet). \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f.   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List             &lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Multimap&lt;String, Integer&gt; multiMap = HashMultimap.create();                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], Hello=[0, 2], World!=[1, 5], All!=[3]} - \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c ArrayListMultimapTest \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439, \u0442\u0430\u043a \u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f<br \/>   \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 HashMap, \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 ArrayList). \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f<br \/>   \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f.   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List             &lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Multimap&lt;String, Integer&gt; multiMap = ArrayListMultimap.create();                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], Hello=[0, 2], World!=[1, 5], All!=[3]} - \u043a\u043b\u044e\u0447\u0438 \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi]- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c LinkedHashMultimapTest \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439<br \/>   \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 LinkedHashMap, \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 LinkedHashSet). \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430<br \/>   \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f.   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List             &lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Multimap&lt;String, Integer&gt; multiMap = LinkedHashMultimap.create();                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]}-\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi]- \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c LinkedListMultimapTest \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439<br \/>   \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 LinkedHashMap, \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 LinkedList). \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430<br \/>   \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f.   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List             &lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Multimap&lt;String, Integer&gt; multiMap = LinkedListMultimap.create();                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]}-\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi]- \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c TreeMultimapTest \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439<br \/>   \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 TreeMap, \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 TreeSet).   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Multimap&lt;String, Integer&gt; multiMap = TreeMultimap.create();                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]}-\u0432                 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi]- \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>  2. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 MultiValueMap \u043e\u0442 Apache Commons Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c MultiValueMap \u043e\u0442 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f HashMap \u0434\u043b\u044f<br \/>   \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 ArrayList \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439)   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MultiMap&lt;String, Integer&gt; multiMap = new MultiValueMap&lt;String, Integer&gt;();                   \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], Hello=[0, 2], World!=[1, 5], All!=[3]} - \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 null                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c MultiValueMap, \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 TreeMap&lt;String, TreeSet&gt;()<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MultiMap&lt;String, Integer&gt; multiMap = MultiValueMap.multiValueMap(new TreeMap&lt;String, Set&gt;(), TreeSet.class);                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {All!=[3], Hello=[0, 2], Hi=[4], World!=[1, 5]} -\u0432                 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [All!, Hello, Hi, World!] \u0432 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 null                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c MultiValueMap, \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 LinkedHashMap&lt;String, LinkedHashSet&gt;()<\/b><\/p>\n<div class=\"spoiler_text\"> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439   <\/p>\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MultiMap&lt;String, Integer&gt; multiMap = MultiValueMap.multiValueMap(new LinkedHashMap&lt;String, Set&gt;(), LinkedHashSet.class);                  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]} - \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hello, World!, All!, Hi] - \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 null                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432                 System.out.println(multiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   3. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 Multimap \u043e\u0442 GS Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 FastListMultimap<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MutableListMultimap&lt;String, Integer&gt; multiMap = new FastListMultimap&lt;String, Integer&gt;();                   \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], World!=[1, 5], Hello=[0, 2], All!=[3]}- \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keysView()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.keysView().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 HashBagMultimap<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MutableBagMultimap&lt;String, Integer&gt; multiMap = new HashBagMultimap&lt;String, Integer&gt;();                   \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], World!=[1, 5], Hello=[0, 2], All!=[3]}- \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keysView()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.keysView().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 TreeSortedSetMultimap<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 MutableSortedSetMultimap&lt;String, Integer&gt; multiMap = new TreeSortedSetMultimap&lt;String, Integer&gt;();                   \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c Multimap                 int i = 0;                 for(String word: words) {                 multiMap.put(word, i);                 i++;                 }                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(multiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], World!=[1, 5], Hello=[0, 2], All!=[3]}- \u0432                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                 System.out.println(multiMap.keysView()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c                 \u043f\u043e\u0440\u044f\u0434\u043a\u0435                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                 System.out.println(&quot;Hello = &quot; + multiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                 System.out.println(&quot;World = &quot; + multiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                 System.out.println(&quot;All = &quot; + multiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                 System.out.println(&quot;Hi = &quot; + multiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                 System.out.println(&quot;Empty = &quot; + multiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 []                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                 System.out.println(multiMap.keysView().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                 <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>  4. \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c JDK \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 multiMap \u0447\u0435\u0440\u0435\u0437 HashMap   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u042d\u043c\u0443\u043b\u044f\u0446\u0438\u044f multiMap \u0447\u0435\u0440\u0435\u0437 HashMap<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            final int LIST_INDEXES_CAPACITY = 50;             String INPUT_TEXT = &quot;Hello World! Hello All! Hi World!&quot;;             \/\/ \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b             List&lt;String&gt; words = Arrays.asList(INPUT_TEXT.split(&quot; &quot;));                 \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multimap                 Map&lt;String, List&lt;Integer&gt;&gt; fakeMultiMap = new HashMap&lt;String, List&lt;Integer&gt;&gt;(words.size());                           \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c map                         int i = 0;                         for(String word: words) {                         List&lt;Integer&gt; indexes = fakeMultiMap.get(word);                             if(indexes == null) {                             indexes = new ArrayList&lt;Integer&gt;(LIST_INDEXES_CAPACITY);                                 fakeMultiMap.put(word, indexes);                                 }                                 indexes.add(i);                                 i++;                                 }                                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442                                 System.out.println(fakeMultiMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {Hi=[4], Hello=[0, 2], World!=[1, 5],                                 All!=[3]} - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                                 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430                                 System.out.println(fakeMultiMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [Hi, Hello, World!, All!] - \u0432                                 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435                                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442                                 System.out.println(&quot;Hello = &quot; + fakeMultiMap.get(&quot;Hello&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [0, 2]                                 System.out.println(&quot;World = &quot; + fakeMultiMap.get(&quot;World!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [1, 5]                                 System.out.println(&quot;All = &quot; + fakeMultiMap.get(&quot;All!&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [3]                                 System.out.println(&quot;Hi = &quot; + fakeMultiMap.get(&quot;Hi&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [4]                                 System.out.println(&quot;Empty = &quot; + fakeMultiMap.get(&quot;Empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 null                                  \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                                 int cnt = 0;                                 for(List&lt;Integer&gt; lists: fakeMultiMap.values()) {                                     cnt += lists.size();                                     }                                     System.out.println(cnt); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 6                                      \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435                                     System.out.println(fakeMultiMap.keySet().size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 4                                     <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<h2><b>4.3 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f BiMap \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 guava, Apache Commons Collections \u0438 GS Collections <\/b><\/h2>\n<p>  \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f BiMap \u0432\u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0430, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f HashBiMap \u0432 guava \u0438 GS Collections \u0438<br \/>   BidiMap \u0432 Apache Commons Collections. \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0439 HashBiMap, \u0443 guava \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Enum<br \/>   \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a EnumHashBiMap \u0438\u043b\u0438 EnumBiMap, \u0443 Apache Commons Collections \u0435\u0441\u0442\u044c \u0440\u044f\u0434<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447\u0438 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438\u043b\u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b.<\/p>\n<h4><b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f BiMap \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u00ab\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430\u00bb, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b<\/b><\/h4>\n<p>   <b>\u0415\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0430<\/b>: \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0445 \u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0441\u043b\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443, \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c<br \/>   \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>   1. \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 BiMap \u043e\u0442 Guava:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c BiMap \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String[] englishWords = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;,&quot;ball&quot;,&quot;snow&quot;};             String[] russianWords = {&quot;\u043e\u0434\u0438\u043d&quot;, &quot;\u0434\u0432\u0430&quot;, &quot;\u0442\u0440\u0438&quot;,&quot;\u043c\u044f\u0447&quot;,&quot;c\u043d\u0435\u0433&quot;};              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             BiMap&lt;String, String&gt; biMap = HashBiMap.create(englishWords.length);             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(String englishWord: englishWords) {             biMap.put(englishWord, russianWords[i]);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {two=\u0434\u0432\u0430, three=\u0442\u0440\u0438, snow=c\u043d\u0435\u0433, ball=\u043c\u044f\u0447, one=\u043e\u0434\u0438\u043d} - \u0432             \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [two, three, snow, ball, one] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             System.out.println(biMap.values()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [\u0434\u0432\u0430, \u0442\u0440\u0438, c\u043d\u0435\u0433, \u043c\u044f\u0447, \u043e\u0434\u0438\u043d]- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMap.get(&quot;one&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = \u043e\u0434\u0438\u043d             System.out.println(&quot;two = &quot; + biMap.get(&quot;two&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = \u0434\u0432\u0430             System.out.println(&quot;\u043c\u044f\u0447 = &quot; + biMap.inverse().get(&quot;\u043c\u044f\u0447&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043c\u044f\u0447 = ball             System.out.println(&quot;\u0441\u043d\u0435\u0433 = &quot; + biMap.inverse().get(&quot;c\u043d\u0435\u0433&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043d\u0435\u0433 = snow             System.out.println(&quot;empty = &quot; + biMap.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c EnumBiMap \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            enum ENGLISH_WORD {             ONE, TWO, THREE, BALL, SNOW             }             enum POLISH_WORD {             JEDEN, DWA, TRZY, KULA, SNIEG             }             \/\/ \u0417\u0430\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043f\u043e\u043b\u044c\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u043b\u043e\u0432\u0430 \u0432 \u0434\u0432\u0443\u0445             \u043d\u0430\u043f\u0440\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u0445             public static void main(String[] args) {             ENGLISH_WORD[] englishWords = ENGLISH_WORD.values();             POLISH_WORD[] polishWords = POLISH_WORD.values();              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             BiMap&lt;ENGLISH_WORD, POLISH_WORD&gt; biMap = EnumBiMap.create(ENGLISH_WORD.class, POLISH_WORD.class);             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u043f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(ENGLISH_WORD englishWord: englishWords) {             biMap.put(englishWord, polishWords[i]);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {ONE=JEDEN, TWO=DWA, THREE=TRZY, BALL=KULA, SNOW=SNIEG}             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [ONE, TWO, THREE, BALL, SNOW]             System.out.println(biMap.values()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [JEDEN, DWA, TRZY, KULA, SNIEG]              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMap.get(ENGLISH_WORD.ONE)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = JEDEN             System.out.println(&quot;two = &quot; + biMap.get(ENGLISH_WORD.TWO)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = DWA             System.out.println(&quot;kula = &quot; + biMap.inverse().get(POLISH_WORD.KULA)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 kula = BALL             System.out.println(&quot;snieg = &quot; + biMap.inverse().get(POLISH_WORD.SNIEG)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 snieg = SNOW             System.out.println(&quot;empty = &quot; + biMap.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5              }             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c EnumHashBiMap \u043e\u0442 guava<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            enum ENGLISH_WORD {             ONE, TWO, THREE, BALL, SNOW             }             \/\/ \u0417\u0430\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0440\u0443\u0441\u0441\u043a\u043e\u0432-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u043b\u043e\u0432\u0430 \u0432 \u0434\u0432\u0443\u0445             \u043d\u0430\u043f\u0440\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u0445             public static void main(String[] args) {             ENGLISH_WORD[] englishWords = ENGLISH_WORD.values();             String[] russianWords = {&quot;\u043e\u0434\u0438\u043d&quot;, &quot;\u0434\u0432\u0430&quot;, &quot;\u0442\u0440\u0438&quot;,&quot;\u043c\u044f\u0447&quot;,&quot;c\u043d\u0435\u0433&quot;};              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             BiMap&lt;ENGLISH_WORD, String&gt; biMap = EnumHashBiMap.create(ENGLISH_WORD.class);             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(ENGLISH_WORD englishWord: englishWords) {             biMap.put(englishWord, russianWords[i]);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {ONE=\u043e\u0434\u0438\u043d, TWO=\u0434\u0432\u0430, THREE=\u0442\u0440\u0438, BALL=\u043c\u044f\u0447, SNOW=c\u043d\u0435\u0433}             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [ONE, TWO, THREE, BALL, SNOW]             System.out.println(biMap.values()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [\u043e\u0434\u0438\u043d, \u0434\u0432\u0430, \u0442\u0440\u0438, \u043c\u044f\u0447, c\u043d\u0435\u0433]              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMap.get(ENGLISH_WORD.ONE)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = \u043e\u0434\u0438\u043d             System.out.println(&quot;two = &quot; + biMap.get(ENGLISH_WORD.TWO)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = \u0434\u0432\u0430             System.out.println(&quot;\u043c\u044f\u0447 = &quot; + biMap.inverse().get(&quot;\u043c\u044f\u0447&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043c\u044f\u0447 = BALL             System.out.println(&quot;\u0441\u043d\u0435\u0433 = &quot; + biMap.inverse().get(&quot;c\u043d\u0435\u0433&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043d\u0435\u0433 = SNOW             System.out.println(&quot;empty = &quot; + biMap.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5              }             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   2. C \u043f\u043e\u043c\u043e\u0449\u044c\u044e BidiMap \u043e\u0442 Apache Commons Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c DualHashBidiMap \u043e\u0442 Apache Commons Collections<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String[] englishWords = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;,&quot;ball&quot;,&quot;snow&quot;};             String[] russianWords = {&quot;\u043e\u0434\u0438\u043d&quot;, &quot;\u0434\u0432\u0430&quot;, &quot;\u0442\u0440\u0438&quot;,&quot;\u043c\u044f\u0447&quot;,&quot;c\u043d\u0435\u0433&quot;};              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             BidiMap&lt;String, String&gt; biMap = new DualHashBidiMap();             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(String englishWord: englishWords) {             biMap.put(englishWord, russianWords[i]);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {ball=\u043c\u044f\u0447, snow=c\u043d\u0435\u0433, one=\u043e\u0434\u0438\u043d, two=\u0434\u0432\u0430, three=\u0442\u0440\u0438}- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c             \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [ball, snow, one, two, three]- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             System.out.println(biMap.values()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [\u043c\u044f\u0447, c\u043d\u0435\u0433, \u043e\u0434\u0438\u043d, \u0434\u0432\u0430, \u0442\u0440\u0438]- \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMap.get(&quot;one&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = \u043e\u0434\u0438\u043d             System.out.println(&quot;two = &quot; + biMap.get(&quot;two&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = \u0434\u0432\u0430             System.out.println(&quot;\u043c\u044f\u0447 = &quot; + biMap.getKey(&quot;\u043c\u044f\u0447&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043c\u044f\u0447 = ball             System.out.println(&quot;\u0441\u043d\u0435\u0433 = &quot; + biMap.getKey(&quot;c\u043d\u0435\u0433&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043d\u0435\u0433 = snow             System.out.println(&quot;empty = &quot; + biMap.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   3. C \u043f\u043e\u043c\u043e\u0449\u044c\u044e HashBiMap \u043e\u0442 GS Collections:   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c HashBiMap \u043e\u0442 GS Collections<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String[] englishWords = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;,&quot;ball&quot;,&quot;snow&quot;};             String[] russianWords = {&quot;\u043e\u0434\u0438\u043d&quot;, &quot;\u0434\u0432\u0430&quot;, &quot;\u0442\u0440\u0438&quot;,&quot;\u043c\u044f\u0447&quot;,&quot;c\u043d\u0435\u0433&quot;};              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c Multiset             MutableBiMap&lt;String, String&gt; biMap = new HashBiMap(englishWords.length);             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(String englishWord: englishWords) {             biMap.put(englishWord, russianWords[i]);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMap); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {two=\u0434\u0432\u0430, ball=\u043c\u044f\u0447, one=\u043e\u0434\u0438\u043d, snow=c\u043d\u0435\u0433, three=\u0442\u0440\u0438} - \u0432             \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMap.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [snow, two, one, three, ball] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             System.out.println(biMap.values()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [\u0434\u0432\u0430, \u043c\u044f\u0447, \u043e\u0434\u0438\u043d, c\u043d\u0435\u0433, \u0442\u0440\u0438] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMap.get(&quot;one&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = \u043e\u0434\u0438\u043d             System.out.println(&quot;two = &quot; + biMap.get(&quot;two&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = \u0434\u0432\u0430             System.out.println(&quot;\u043c\u044f\u0447 = &quot; + biMap.inverse().get(&quot;\u043c\u044f\u0447&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043c\u044f\u0447 = ball             System.out.println(&quot;\u0441\u043d\u0435\u0433 = &quot; + biMap.inverse().get(&quot;c\u043d\u0435\u0433&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043d\u0435\u0433 = snow             System.out.println(&quot;empty = &quot; + biMap.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMap.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<p>   4. \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c JDK   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u0432\u0435 HashMap \u0434\u043b\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 BiMap<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">            String[] englishWords = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;,&quot;ball&quot;,&quot;snow&quot;};             String[] russianWords = {&quot;\u043e\u0434\u0438\u043d&quot;, &quot;\u0434\u0432\u0430&quot;, &quot;\u0442\u0440\u0438&quot;,&quot;\u043c\u044f\u0447&quot;,&quot;c\u043d\u0435\u0433&quot;};              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433 BiMap             Map&lt;String, String&gt; biMapKeys = new HashMap(englishWords.length);             Map&lt;String, String&gt; biMapValues = new HashMap(russianWords.length);             \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u0433\u043b\u043e-\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c             int i = 0;             for(String englishWord: englishWords) {             biMapKeys.put(englishWord, russianWords[i]);             biMapValues.put(russianWords[i], englishWord);             i++;             }              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b-\u0432\u043e\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0432             System.out.println(biMapKeys); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 {ball=\u043c\u044f\u0447, two=\u0434\u0432\u0430, three=\u0442\u0440\u0438, snow=c\u043d\u0435\u0433, one=\u043e\u0434\u0438\u043d}- \u0432             \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430             System.out.println(biMapKeys.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [ball, two, three, snow, one] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435             System.out.println(biMapValues.keySet()); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 [\u0434\u0432\u0430, \u0442\u0440\u0438, \u043c\u044f\u0447, c\u043d\u0435\u0433, \u043e\u0434\u0438\u043d] - \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443             System.out.println(&quot;one = &quot; + biMapKeys.get(&quot;one&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 one = \u043e\u0434\u0438\u043d             System.out.println(&quot;two = &quot; + biMapKeys.get(&quot;two&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 two = \u0434\u0432\u0430             System.out.println(&quot;\u043c\u044f\u0447 = &quot; + biMapValues.get(&quot;\u043c\u044f\u0447&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043c\u044f\u0447 = ball             System.out.println(&quot;\u0441\u043d\u0435\u0433 = &quot; + biMapValues.get(&quot;c\u043d\u0435\u0433&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u043d\u0435\u0433 = snow             System.out.println(&quot;empty = &quot; + biMapValues.get(&quot;empty&quot;)); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 empty = null              \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435             System.out.println(biMapKeys.size()); \/\/\u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 5             <\/code><\/pre>\n<p>   <\/div>\n<\/div>\n<h2><b>V. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438<\/b><\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 JDK. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a (\u044d\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e), \u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0434\u0430\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u0438 \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0433 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u043c\u0443.<\/p>\n<h4>5.1 \u0421\u0440\u0430\u0432\u043d\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/h4>\n<p>  Guava \u0438 gc-collections \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 new, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 jdk.<\/p>\n<p>  5.1.1) \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 (List)  <\/p>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0433\u043e <b>\u0441\u043f\u0438\u0441\u043a\u0430<\/b><\/td>\n<td>new ArrayList&lt;&gt;()<\/td>\n<td>Lists.newArrayList()<\/td>\n<td>FastList.newList()<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <b>\u0441\u043f\u0438\u0441\u043a\u0430<\/b> \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/td>\n<td>Arrays.asList(\u00ab1\u00bb, \u00ab2\u00bb, \u00ab3\u00bb)<\/td>\n<td>Lists.newArrayList(\u00ab1\u00bb, \u00ab2\u00bb, \u00ab3\u00bb)<\/td>\n<td>FastList.newListWith(\u00ab1\u00bb, \u00ab2\u00bb, \u00ab3\u00bb)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> \u0441 <br \/>   \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c capacity<\/td>\n<td>new ArrayList&lt;&gt;(100)<\/td>\n<td>Lists.newArrayListWithCapacity(100)<\/td>\n<td>FastList.newList(100)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> \u0438\u0437<br \/>   \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>new ArrayList&lt;&gt;(collection)<\/td>\n<td>Lists.newArrayList(collection)<\/td>\n<td>FastList.newList(collection)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> \u0438\u0437<br \/>   \u043b\u044e\u0431\u043e\u0433\u043e Iterable<\/td>\n<td> &#8212;<\/td>\n<td>Lists.newArrayList(iterable)<\/td>\n<td>FastList.newList(iterable)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> <br \/>   \u0438\u0437 Iterator&#8217;\u0430<\/td>\n<td> &#8212;<\/td>\n<td>Lists.newArrayList(iterator)<\/td>\n<td> &#8212;<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/td>\n<td>Arrays.asList(array)<\/td>\n<td>Lists.newArrayList(array)<\/td>\n<td>FastList.newListWith(array)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u0441\u043f\u0438\u0441\u043e\u043a<\/b> <br \/>   c \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0431\u0440\u0438\u043a\u0438<\/td>\n<td> \u2014 <\/td>\n<td> \u2014 <\/td>\n<td>FastList.newWithNValues(10, () -&gt; \u00ab1\u00bb)<\/td>\n<\/tr>\n<\/table>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">         \/\/ \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         List&lt;String&gt; emptyGuava = Lists.newArrayList(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; emptyJDK = new ArrayList&lt;&gt;(); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  emptyGS = FastList.newList(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u043e\u0432\u043d\u043e \u0441\u043e 100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438         List &lt; String &gt; exactly100 = Lists.newArrayListWithCapacity(100); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; exactly100JDK = new ArrayList&lt;&gt;(100); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  empty100GS = FastList.newList(100); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e 100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 100)         List&lt;String&gt; approx100 = Lists.newArrayListWithExpectedSize(100); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; approx100JDK = new ArrayList&lt;&gt;(115); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  approx100GS = FastList.newList(115); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432         List&lt;String&gt; withElements = Lists.newArrayList(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; withElementsJDK = Arrays.asList(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  withElementsGS = FastList.newListWith(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(withElements);         System.out.println(withElementsJDK);         System.out.println(withElementsGS);          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Iterable \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438)         Collection&lt;String&gt; collection = new HashSet&lt;&gt;(3);         collection.add(&quot;1&quot;);         collection.add(&quot;2&quot;);         collection.add(&quot;3&quot;);          List&lt;String&gt; fromIterable = Lists.newArrayList(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; fromIterableJDK = new ArrayList&lt;&gt;(collection); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  fromIterableGS = FastList.newList(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(fromIterable);         System.out.println(fromIterableJDK);         System.out.println(fromIterableGS);         \/* \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443 JDK \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 Collection \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0443 guava \u0438 gs \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e Iterable *\/          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 Iterator'\u0430         Iterator&lt;String&gt; iterator = collection.iterator();         List&lt;String&gt; fromIterator = Lists.newArrayList(iterator); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava, \u0430\u043d\u0430\u043b\u043e\u0433\u0430 \u0432 JDK \u043d\u0435\u0442         System.out.println(fromIterator);          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430         String[] array = {&quot;4&quot;, &quot;5&quot;, &quot;6&quot;};         List&lt;String&gt; fromArray = Lists.newArrayList(array); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         List&lt;String&gt; fromArrayJDK = Arrays.asList(array); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         MutableList&lt;String&gt;  fromArrayGS = FastList.newListWith(array); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs         System.out.println(fromArray);         System.out.println(fromArrayJDK);         System.out.println(fromArrayGS);          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 c \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0431\u0440\u0438\u043a\u0438         MutableList&lt;String&gt;  fromFabricGS = FastList.newWithNValues(10, () -&gt; String.valueOf(Math.random())); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs         System.out.println(fromFabricGS); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  5.1.2) \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 (set)  <\/p>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0433\u043e <br \/>   <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<\/b><\/td>\n<td>new HashSet&lt;&gt;()<\/td>\n<td>Sets.newHashSet()<\/td>\n<td>UnifiedSet.newSet()<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b> \u0438\u0437 <br \/>   \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/td>\n<td>new HashSet&lt;&gt;(Arrays.asList(\u00abalpha\u00bb, \u00abbeta\u00bb, \u00abgamma\u00bb))<\/td>\n<td>Sets.newHashSet(\u00abalpha\u00bb, \u00abbeta\u00bb, \u00abgamma\u00bb)<\/td>\n<td>UnifiedSet.newSetWith(\u00abalpha\u00bb, \u00abbeta\u00bb, \u00abgamma\u00bb)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b> \u0438\u0437<br \/>   \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>new HashSet&lt;&gt;(collection)<\/td>\n<td>Sets.newHashSet(collection)<\/td>\n<td>UnifiedSet.newSet(collection)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b> \u0438\u0437<br \/>   \u043b\u044e\u0431\u043e\u0433\u043e Iterable<\/td>\n<td>&#8212;<\/td>\n<td>Sets.newHashSet(iterable)<\/td>\n<td>UnifiedSet.newSet(iterable)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b> <br \/>   \u0438\u0437 Iterator&#8217;\u0430<\/td>\n<td> &#8212;<\/td>\n<td>Sets.newHashSet(iterator);<\/td>\n<td> &#8212;<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b><br \/>   \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/td>\n<td>new HashSet&lt;&gt;(Arrays.asList(array))<\/td>\n<td>Sets.newHashSet(array)<\/td>\n<td>UnifiedSet.newSetWith(array)<\/td>\n<\/tr>\n<\/table>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">         \/\/ \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         Set&lt;String&gt; emptyGuava = Sets.newHashSet(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Set&lt;String&gt; emptyJDK = new HashSet&lt;&gt;(); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         Set&lt;String&gt; emptyGS = UnifiedSet.newSet(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e 100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 100)         Set&lt;String&gt; approx100 = Sets.newHashSetWithExpectedSize(100); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Set&lt;String&gt; approx100JDK = new HashSet&lt;&gt;(130); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         Set&lt;String&gt; approx100GS = UnifiedSet.newSet(130); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432         Set&lt;String&gt; withElements =  Sets.newHashSet(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Set&lt;String&gt; withElementsJDK = new HashSet&lt;&gt;(Arrays.asList(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;)); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         Set&lt;String&gt; withElementsGS  = UnifiedSet.newSetWith(&quot;alpha&quot;, &quot;beta&quot;, &quot;gamma&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(withElements);         System.out.println(withElementsJDK);         System.out.println(withElementsGS);          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Iterable \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438)         Collection&lt;String&gt; collection = new ArrayList&lt;&gt;(3);         collection.add(&quot;1&quot;);         collection.add(&quot;2&quot;);         collection.add(&quot;3&quot;);          Set&lt;String&gt; fromIterable = Sets.newHashSet(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Set&lt;String&gt; fromIterableJDK = new HashSet&lt;&gt;(collection); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         Set&lt;String&gt; fromIterableGS  = UnifiedSet.newSet(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(fromIterable);         System.out.println(fromIterableJDK);         System.out.println(fromIterableGS);         \/* \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443 JDK \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 Collection \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0443 guava \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e Iterable *\/          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 Iterator'\u0430         Iterator&lt;String&gt; iterator = collection.iterator();         Set&lt;String&gt; fromIterator = Sets.newHashSet(iterator); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava, \u0430\u043d\u0430\u043b\u043e\u0433\u0430 \u0432 JDK \u043d\u0435\u0442         System.out.println(fromIterator);          \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430         String[] array = {&quot;4&quot;, &quot;5&quot;, &quot;6&quot;};         Set&lt;String&gt; fromArray = Sets.newHashSet(array); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Set&lt;String&gt; fromArrayJDK = new HashSet&lt;&gt;(Arrays.asList(array)); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK         Set&lt;String&gt; fromArrayGS  = UnifiedSet.newSetWith(array); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs         System.out.println(fromArray);         System.out.println(fromArrayJDK);         System.out.println(fromArrayGS); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  5.1.3) \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Map  <\/p>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0439 <b>map&#8217;\u044b<\/b><\/td>\n<td>new HashMap&lt;&gt;() <\/td>\n<td>Maps.newHashMap() <\/td>\n<td>UnifiedMap.newMap()<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>map&#8217;\u0443<\/b> c <br \/>   \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c capacity<\/td>\n<td>new HashMap&lt;&gt;(130)<\/td>\n<td>Maps.newHashMapWithExpectedSize(100)<\/td>\n<td>UnifiedMap.newMap(130)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c map&#8217;\u0443 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 <b>map&#8217;\u044b<\/b><\/td>\n<td>new HashMap&lt;&gt;(map)<\/td>\n<td>Maps.newHashMap(map)<\/td>\n<td>UnifiedMap.newMap(map)<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c <b>map&#8217;\u0443<\/b> \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0439<\/td>\n<td> &#8212;<\/td>\n<td> &#8212;<\/td>\n<td>UnifiedMap.newWithKeysValues(\u00ab1\u00bb, \u00aba\u00bb, \u00ab2\u00bb, \u00abb\u00bb)<\/td>\n<\/tr>\n<\/table>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f map<\/b><\/p>\n<div class=\"spoiler_text\"> \/\/ \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<br \/>   Map&lt;String, String&gt; emptyGuava = Maps.newHashMap(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava<br \/>   Map&lt;String, String&gt; emptyJDK = new HashMap&lt;&gt;(); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK<br \/>   Map&lt;String, String&gt; emptyGS = UnifiedMap.newMap(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs<\/p>\n<p>  \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c map&#8217;\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e 100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 100)<br \/>   Map&lt;String, String&gt; approx100 = Maps.newHashMapWithExpectedSize(100); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava<br \/>   Map&lt;String, String&gt; approx100JDK = new HashMap&lt;&gt;(130); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK<br \/>   Map&lt;String, String&gt; approx100GS = UnifiedMap.newMap(130); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs<\/p>\n<p>  \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c map&#8217;\u0443 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 map&#8217;\u044b<br \/>   Map&lt;String, String&gt; map = new HashMap&lt;&gt;(3);<br \/>   map.put(\u00abk1\u00bb,\u00abv1\u00bb);<br \/>   map.put(\u00abk2\u00bb,\u00abv2\u00bb);<br \/>   Map&lt;String, String&gt; withMap = Maps.newHashMap(map); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava<br \/>   Map&lt;String, String&gt; withMapJDK = new HashMap&lt;&gt;(map); \/\/ \u0430\u043d\u0430\u043b\u043e\u0433 JDK<br \/>   Map&lt;String, String&gt; withMapGS = UnifiedMap.newMap(map); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs<\/p>\n<p>  System.out.println(withMap);<br \/>   System.out.println(withMapJDK);<br \/>   System.out.println(withMapGS);<\/p>\n<p>  \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c map&#8217;\u0443 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0439<br \/>   Map&lt;String, String&gt; withKeys = UnifiedMap.newWithKeysValues(\u00ab1\u00bb, \u00aba\u00bb, \u00ab2\u00bb, \u00abb\u00bb);<br \/>   System.out.println(withKeys);  <\/div>\n<\/div>\n<h4>5.2 \u0421\u0440\u0430\u0432\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/h4>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>apache<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/td>\n<td>Collections.frequency(collection, \u00ab1\u00bb)<\/td>\n<td>Iterables.frequency(iterable, \u00ab1\u00bb)<\/td>\n<td>CollectionUtils.cardinality(\u00ab1\u00bb, iterable)<\/td>\n<td>mutableCollection.count((each) -&gt; \u00aba1\u00bb.equals(each))<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/td>\n<td>collection.stream().findFirst().orElse(\u00ab1\u00bb)<\/td>\n<td>Iterables.getFirst(iterable, \u00ab1\u00bb)<\/td>\n<td>CollectionUtils.get(iterable, 0)<\/td>\n<td>orderedIterable.getFirst()<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/td>\n<td>collection.stream().skip(collection.size()-1).findFirst().orElse(\u00ab1\u00bb);<\/td>\n<td>Iterables.getLast(iterable, \u00ab1\u00bb)<\/td>\n<td>CollectionUtils.get(collection, collection.size()-1)<\/td>\n<td>orderedIterable.getLast()<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/td>\n<td>Collections.max(collection)<\/td>\n<td>Ordering.natural().max(iterable)<\/td>\n<td>&#8212;<\/td>\n<td>orderedIterable.max()<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/td>\n<td>Collections.min(collection)<\/td>\n<td>Ordering.natural().min(iterable)<\/td>\n<td>&#8212;<\/td>\n<td>orderedIterable.min()<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td><\/td>\n<td>Iterables.getOnlyElement(iterable)<\/td>\n<td>CollectionUtils.extractSingleton(collection)<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435<\/td>\n<td>Collections.binarySearch(list, \u00ab13\u00bb)<\/td>\n<td>Ordering.natural().binarySearch(list, \u00ab13\u00bb)<\/td>\n<td><\/td>\n<td>mutableList.binarySearch(\u00ab13\u00bb)<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043d\u0435\u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>collection.stream().filter(\u00ab13\u00bb::equals).findFirst().get()<\/td>\n<td>Iterables.find(iterable, \u00ab13\u00bb::equals)<\/td>\n<td>CollectionUtils.find(iterable, \u00ab13\u00bb::equals)<\/td>\n<td>mutableList.select(\u00ab13\u00bb::equals).get(0)<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/td>\n<td>collection.stream().filter((s) -&gt; s.contains(\u00ab1\u00bb)).collect(Collectors.toList())<\/td>\n<td>Iterables.filter(iterable, (s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<td>CollectionUtils.select(iterable, (s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<td>mutableCollection.select((s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<\/tr>\n<\/table>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445: collection \u2014 \u043b\u044e\u0431\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Collection, iterable \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Iterable, list \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 List, orderedIterable \u0438 mutableList \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0432 GS (orderedIterable \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, mutableList \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u043b\u044e\u0431\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432)<\/p>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/b>: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">1) \u041d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable = collection;         MutableCollection&lt;String&gt; collectionGS = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);          \/\/ \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430         int i1 = Iterables.frequency(iterable, &quot;a1&quot;); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         int i2 = Collections.frequency(collection, &quot;a1&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         int i3 = CollectionUtils.cardinality(&quot;a1&quot;, iterable); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         int i4 = collectionGS.count((s) -&gt; &quot;a1&quot;.equals(s));         long i5 = collection.stream().filter((s) -&gt; &quot;a1&quot;.equals(s)).count(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e stream JDK          System.out.println(&quot;count = &quot; + i1 + &quot;:&quot; + i2 + &quot;:&quot; + i3 + &quot;:&quot; + i4 + &quot;:&quot; + i5); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 count = 2:2:2:2:2  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">2) \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         OrderedIterable&lt;String&gt; orderedIterable = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         Iterator&lt;String&gt; iterator = collection.iterator(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String jdk = iterator.hasNext() ? iterator.next(): &quot;1&quot;;         String guava = Iterables.getFirst(iterable, &quot;1&quot;); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         String apache = CollectionUtils.get(iterable, 0);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         String gs = orderedIterable.getFirst(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         String stream = collection.stream().findFirst().orElse(&quot;1&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Stream API         System.out.println(&quot;first = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs + &quot;:&quot; + stream); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 first = a1:a1:a1:a1:a1 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">3) \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a8&quot;);         OrderedIterable&lt;String&gt; orderedIterable = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a8&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         Iterator&lt;String&gt; iterator = collection.iterator(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String jdk = &quot;1&quot;;         while(iterator.hasNext()) {             jdk = iterator.next();         }         String guava = Iterables.getLast(iterable, &quot;1&quot;); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         String apache = CollectionUtils.get(collection, collection.size()-1);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         String gs = orderedIterable.getLast(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         String stream = collection.stream().skip(collection.size()-1).findFirst().orElse(&quot;1&quot;); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Stream API         System.out.println(&quot;last = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs + &quot;:&quot; + stream); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 last = a8:a8:a8:a8:a8 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">4) \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;5&quot;, &quot;1&quot;, &quot;3&quot;, &quot;8&quot;, &quot;4&quot;);         OrderedIterable&lt;String&gt; orderedIterable = FastList.newListWith(&quot;5&quot;, &quot;1&quot;, &quot;3&quot;, &quot;8&quot;, &quot;4&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         String jdk = Collections.max(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String gs = orderedIterable.max(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         String guava = Ordering.natural().max(iterable); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava          System.out.println(&quot;max = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 max = 8:8:8 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">5) \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;5&quot;, &quot;1&quot;, &quot;3&quot;, &quot;8&quot;, &quot;4&quot;);         OrderedIterable&lt;String&gt; orderedIterable = FastList.newListWith(&quot;5&quot;, &quot;1&quot;, &quot;3&quot;, &quot;8&quot;, &quot;4&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         String jdk = Collections.min(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String gs = orderedIterable.min(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         String guava = Ordering.natural().min(iterable); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         System.out.println(&quot;min = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 min = 1:1:1 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">6) \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a3&quot;);         OrderedIterable&lt;String&gt; orderedIterable = FastList.newListWith(&quot;a3&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         String guava = Iterables.getOnlyElement(iterable); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         String jdk = collection.iterator().next(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String apache = CollectionUtils.extractSingleton(collection); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         assert(orderedIterable.size() &gt; 1);\/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         String gs =  orderedIterable.getFirst();          System.out.println(&quot;single = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 single = a3:a3:a3:a3  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">7) \u043d\u0430\u0439\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        List&lt;String&gt; list = Lists.newArrayList(&quot;2&quot;, &quot;4&quot;, &quot;13&quot;, &quot;31&quot;, &quot;43&quot;);         MutableList&lt;String&gt; mutableList = FastList.newListWith(&quot;2&quot;, &quot;4&quot;,&quot;13&quot;, &quot;31&quot;, &quot;43&quot;);          \/\/ \u043d\u0430\u0439\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435         int jdk = Collections.binarySearch(list, &quot;13&quot;);         int guava = Ordering.natural().binarySearch(list, &quot;13&quot;);         int gs = mutableList.binarySearch(&quot;13&quot;);          System.out.println(&quot;find = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 find = 2:2:2 <\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">8) \u043d\u0430\u0439\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043d\u0435\u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">         Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         MutableCollection&lt;String&gt; orderedIterable = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443         String jdk = collection.stream().skip(2).findFirst().get(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         String guava = Iterables.get(iterable, 2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         String apache = CollectionUtils.get(iterable, 2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         System.out.println(&quot;third = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 third = a3:a3:a3 <\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">9) \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;2&quot;, &quot;14&quot;, &quot;3&quot;, &quot;13&quot;, &quot;43&quot;);         MutableCollection&lt;String&gt; mutableCollection = FastList.newListWith(&quot;2&quot;, &quot;14&quot;, &quot;3&quot;, &quot;13&quot;, &quot;43&quot;);         Iterable&lt;String&gt; iterable = collection;          \/\/ \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443         List&lt;String&gt; jdk = collection.stream().filter((s) -&gt; s.contains(&quot;1&quot;)).collect(Collectors.toList()); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         Iterable&lt;String&gt;  guava = Iterables.filter(iterable, (s) -&gt; s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Collection&lt;String&gt; apache = CollectionUtils.select(iterable, (s) -&gt; s.contains(&quot;1&quot;)); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         MutableCollection&lt;String&gt; gs = mutableCollection.select((s) -&gt; s.contains(&quot;1&quot;)); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS          System.out.println(&quot;select = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 select = [14, 13]:[14, 13]:[14, 13]:[14, 13]  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h4>5.3 \u0421\u0440\u0430\u0432\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/h4>\n<p>  <\/p>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>apache<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/td>\n<td>collection1.containsAll(collection2)<\/td>\n<td>Iterables.elementsEqual(iterable1, iterable2)<\/td>\n<td>CollectionUtils.containsAll(collection1, collection2)<\/td>\n<td>mutableCollection1.containsAll(mutableCollection2)<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/td>\n<td>!Collections.disjoint(collection1, collection2)<\/td>\n<td>!Sets.intersection(set1, set2).isEmpty()<\/td>\n<td>CollectionUtils.containsAny(collection1, collection2)<\/td>\n<td>!mutableSet1.intersect(mutableSet2).isEmpty()<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043e\u0431\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (\u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435)<\/td>\n<td>Set&lt;T&gt; result = new HashSet&lt;&gt;(set1); <br \/>  result.retainAll(set2)<\/td>\n<td>Sets.intersection(set1, set2)<\/td>\n<td>CollectionUtils.intersection(collection1, collection2)<\/td>\n<td>mutableSet1.intersect(mutableSet2)<\/td>\n<\/tr>\n<tr>\n<td>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0431\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/td>\n<td>Collections.disjoint(collection1, collection2)<\/td>\n<td>Sets.intersection(set1, set2).isEmpty()<\/td>\n<td>!CollectionUtils.containsAny(collection1, collection2)<\/td>\n<td>mutableSet1.intersect(mutableSet2).isEmpty()<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 (difference)<\/td>\n<td>Set&lt;T&gt; result = new HashSet&lt;&gt;(set1);<br \/>   result.removeAll(set2)<\/td>\n<td>Sets.difference(set1, set2)<\/td>\n<td>CollectionUtils.removeAll(collection1, collection2)<\/td>\n<td>mutableSet1.difference(mutableSet2)<\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (symmetric difference)<\/td>\n<td><\/td>\n<td>Sets.symmetricDifference(set1, set2)<\/td>\n<td>CollectionUtils.disjunction(collection1, collection2)<\/td>\n<td>mutableSet1.symmetricDifference(mutableSet2)<\/td>\n<\/tr>\n<tr>\n<td>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/td>\n<td>Set&lt;T&gt; result = new HashSet&lt;&gt;(set1); <br \/>   result.addAll(set2)<\/td>\n<td>Sets.union(set1, set2)<\/td>\n<td>CollectionUtils.union(collection1, collection2)<\/td>\n<td>mutableSet1.union(mutableSet2)<\/td>\n<\/tr>\n<\/table>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/b>: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">1) \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection1 = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Collection&lt;String&gt; collection2 = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable1 = collection1;         Iterable&lt;String&gt; iterable2 = collection2;         MutableCollection&lt;String&gt; mutableCollection1 = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         MutableCollection&lt;String&gt; mutableCollection2 = FastList.newListWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);          \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         boolean jdk =  collection1.containsAll(collection2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         boolean guava = Iterables.elementsEqual(iterable1, iterable2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         boolean apache = CollectionUtils.containsAll(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         boolean gs = mutableCollection1.containsAll(mutableCollection2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS          System.out.println(&quot;containsAll = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 containsAll = true:true:true:true <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">2) \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection1 = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Collection&lt;String&gt; collection2 = Lists.newArrayList(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         Set&lt;String&gt; set1 = Sets.newHashSet(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Set&lt;String&gt; set2 = Sets.newHashSet(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         MutableSet&lt;String&gt; mutableSet1 = UnifiedSet.newSetWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         MutableSet&lt;String&gt; mutableSet2 = UnifiedSet.newSetWith(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);          \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         boolean jdk = !Collections.disjoint(collection1, collection2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         boolean guava = !Sets.intersection(set1, set2).isEmpty(); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         boolean apache = CollectionUtils.containsAny(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         boolean gs = !mutableSet1.intersect(mutableSet2).isEmpty(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         System.out.println(&quot;containsAny = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 containsAny = true:true:true:true <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">3) \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043e\u0431\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (\u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435) \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection1 = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Collection&lt;String&gt; collection2 = Lists.newArrayList(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         Set&lt;String&gt; set1 = Sets.newHashSet(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Set&lt;String&gt; set2 = Sets.newHashSet(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         MutableSet&lt;String&gt; mutableSet1 = UnifiedSet.newSetWith(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         MutableSet&lt;String&gt; mutableSet2 = UnifiedSet.newSetWith(&quot;a4&quot;, &quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);          \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043e\u0431\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         Set&lt;String&gt; jdk = new HashSet&lt;&gt;(set1); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         jdk.retainAll(set2);         Set&lt;String&gt; guava = Sets.intersection(set1, set2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Collection&lt;String&gt; apache = CollectionUtils.intersection(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         Set&lt;String&gt; gs = mutableSet1.intersect(mutableSet2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         System.out.println(&quot;intersect = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 intersect = [a3]:[a3]:[a3]:[a3] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">4) \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 (difference)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection1 = Lists.newArrayList(&quot;a2&quot;, &quot;a3&quot;);         Collection&lt;String&gt; collection2 = Lists.newArrayList(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         Set&lt;String&gt; set1 = Sets.newHashSet(&quot;a2&quot;, &quot;a3&quot;);         Set&lt;String&gt; set2 = Sets.newHashSet(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         MutableSet&lt;String&gt; mutableSet1 = UnifiedSet.newSetWith(&quot;a2&quot;, &quot;a3&quot;);         MutableSet&lt;String&gt; mutableSet2 = UnifiedSet.newSetWith(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);          \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 (difference)         Set&lt;String&gt; jdk = new HashSet&lt;&gt;(set1); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         jdk.removeAll(set2);         Set&lt;String&gt; guava = Sets.difference(set1, set2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Collection&lt;String&gt; apache = CollectionUtils.removeAll(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         Set&lt;String&gt; gs = mutableSet1.difference(mutableSet2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         System.out.println(&quot;difference = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 difference = [a2]:[a2]:[a2]:[a2]  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">5) \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (symmetric difference) \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection1 = Lists.newArrayList(&quot;a2&quot;, &quot;a3&quot;);         Collection&lt;String&gt; collection2 = Lists.newArrayList(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         Set&lt;String&gt; set1 = Sets.newHashSet(&quot;a2&quot;, &quot;a3&quot;);         Set&lt;String&gt; set2 = Sets.newHashSet(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);         MutableSet&lt;String&gt; mutableSet1 = UnifiedSet.newSetWith(&quot;a2&quot;, &quot;a3&quot;);         MutableSet&lt;String&gt; mutableSet2 = UnifiedSet.newSetWith(&quot;a8&quot;, &quot;a3&quot;, &quot;a5&quot;);          \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (symmetric difference) \u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         Set&lt;String&gt; intersect = new HashSet&lt;&gt;(set1); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         intersect.retainAll(set2);          Set&lt;String&gt; jdk = new HashSet&lt;&gt;(set1);         jdk.addAll(set2);         jdk.removeAll(intersect);          Set&lt;String&gt; guava = Sets.symmetricDifference(set1, set2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Collection&lt;String&gt; apache = CollectionUtils.disjunction(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         Set&lt;String&gt; gs = mutableSet1.symmetricDifference(mutableSet2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         System.out.println(&quot;symmetricDifference = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 symmetricDifference = [a2, a5, a8]:[a2, a5, a8]:[a2, a5, a8]:[a2, a5, a8] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">6) \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Set&lt;String&gt; set1 = Sets.newHashSet(&quot;a1&quot;, &quot;a2&quot;);         Set&lt;String&gt; set2 = Sets.newHashSet(&quot;a4&quot;);         MutableSet&lt;String&gt; mutableSet1 = UnifiedSet.newSetWith(&quot;a1&quot;, &quot;a2&quot;);         MutableSet&lt;String&gt; mutableSet2 = UnifiedSet.newSetWith(&quot;a4&quot;);         Collection&lt;String&gt; collection1 = set1;         Collection&lt;String&gt; collection2 = set2;         \/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439         Set&lt;String&gt; jdk = new HashSet&lt;&gt;(set1); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e JDK         jdk.addAll(set2);         Set&lt;String&gt; guava = Sets.union(set1, set2); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         Collection&lt;String&gt; apache = CollectionUtils.union(collection1, collection2);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apache         Set&lt;String&gt; gs = mutableSet1.union(mutableSet2); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GS         System.out.println(&quot;union = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 union = [a1, a2, a4]:[a1, a2, a4]:[a1, a2, a4]:[a1, a2, a4]  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h4>5.4 \u0421\u0440\u0430\u0432\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/h4>\n<p>  <\/p>\n<table>\n<tr>\n<th width=\"160\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>JDK<\/th>\n<th>guava<\/th>\n<th>apache<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>Collections.sort(list);<\/td>\n<td> Ordering.natural().sortedCopy(iterable)<\/td>\n<td><\/td>\n<td>mutableList.sortThis()<\/td>\n<\/tr>\n<tr>\n<td>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/td>\n<td>collection.removeIf((s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<td>Iterables.removeIf(iterable, (s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<td>CollectionUtils.filter(iterable, (s) -&gt; !s.contains(\u00ab1\u00bb))<\/td>\n<td>mutableCollection.removeIf((Predicate&lt;String&gt;) (s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<\/tr>\n<tr>\n<td>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/td>\n<td>collection.removeIf((s) -&gt; !s.contains(\u00ab1\u00bb))<\/td>\n<td>Iterables.removeIf(iterable, (s) -&gt; !s.contains(\u00ab1\u00bb))<\/td>\n<td>CollectionUtils.filter(iterable, (s) -&gt; s.contains(\u00ab1\u00bb))<\/td>\n<td>mutableCollection.removeIf((Predicate&lt;String&gt;) (s) -&gt; !s.contains(\u00ab1\u00bb))<\/td>\n<\/tr>\n<tr>\n<td>\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>collection.stream().map((s) -&gt; s + &quot;_1&quot;).collect(Collectors.toList())<\/td>\n<td>Iterables.transform(iterable, (s) -&gt; s + &quot;_1&quot;)<\/td>\n<td>CollectionUtils.transform(collection, (s) -&gt; s + &quot;_1&quot;)<\/td>\n<td>mutableCollection.collect((s) -&gt; s + &quot;_1&quot;)<\/td>\n<\/tr>\n<tr>\n<td>\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/td>\n<td>collection.stream().forEach((s) -&gt; s.append(&quot;_1&quot;))<\/td>\n<td>Iterables.transform(iterable, (s) -&gt; s.append(&quot;_1&quot;))<\/td>\n<td>CollectionUtils.transform(collection, (s) -&gt; s.append(&quot;_1&quot;))<\/td>\n<td>mutableCollection.forEach((Procedure&lt;StringBuilder&gt;) (s) -&gt; s.append(&quot;_1&quot;))<\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">1) \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        List&lt;String&gt; jdk = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable = jdk;         MutableList&lt;String&gt; gs = FastList.newList(jdk);          \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         Collections.sort(jdk); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e jdk         List&lt;String&gt; guava = Ordering.natural().sortedCopy(iterable); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         gs.sortThis(); \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(&quot;sort = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 sort = [a1, a1, a2, a3]:[a1, a1, a2, a3]:[a1, a1, a2, a3] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">2) \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; jdk = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; guava = Lists.newArrayList(jdk);         Iterable&lt;String&gt; apache = Lists.newArrayList(jdk);         MutableCollection&lt;String&gt; gs = FastList.newList(jdk);          \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e         jdk.removeIf((s) -&gt; s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e jdk         Iterables.removeIf(guava, (s) -&gt; s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         CollectionUtils.filter(apache, (s) -&gt; !s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e apache         gs.removeIf((Predicate&lt;String&gt;) (s) -&gt; s.contains(&quot;1&quot;));  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(&quot;removeIf = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 removeIf = [a2, a3]:[a2, a3]:[a2, a3]:[a2, a3] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">3) \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; jdk = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; guava = Lists.newArrayList(jdk);         Iterable&lt;String&gt; apache = Lists.newArrayList(jdk);         MutableCollection&lt;String&gt; gs = FastList.newList(jdk);          \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044e         jdk.removeIf((s) -&gt; !s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e jdk         Iterables.removeIf(guava, (s) -&gt; !s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         CollectionUtils.filter(apache, (s) -&gt; s.contains(&quot;1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e apache         gs.removeIf((Predicate&lt;String&gt;) (s) -&gt; !s.contains(&quot;1&quot;));  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(&quot;retainIf = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 retainIf = [a1, a1]:[a1, a1]:[a1, a1]:[a1, a1] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">4) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;String&gt; collection = Lists.newArrayList(&quot;a1&quot;, &quot;a2&quot;, &quot;a3&quot;, &quot;a1&quot;);         Iterable&lt;String&gt; iterable = collection;         Collection&lt;String&gt; apache = Lists.newArrayList(collection);         MutableCollection&lt;String&gt; mutableCollection = FastList.newList(collection);          \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438  \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b         List&lt;String&gt; jdk = collection.stream().map((s) -&gt; s + &quot;_1&quot;).collect(Collectors.toList()); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e jdk         Iterable&lt;String&gt; guava = Iterables.transform(iterable, (s) -&gt; s + &quot;_1&quot;); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         CollectionUtils.transform(apache, (s) -&gt; s + &quot;_1&quot;); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e apache         MutableCollection&lt;String&gt; gs = mutableCollection.collect((s) -&gt; s + &quot;_1&quot;);  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs         System.out.println(&quot;transform = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 transform = [a1_1, a2_1, a3_1, a1_1]:[a1_1, a2_1, a3_1, a1_1]:[a1_1, a2_1, a3_1, a1_1]:[a1_1, a2_1, a3_1, a1_1] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">5) \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">        Collection&lt;StringBuilder&gt; jdk = Lists.newArrayList(new StringBuilder(&quot;a1&quot;), new StringBuilder(&quot;a2&quot;), new StringBuilder(&quot;a3&quot;));         Iterable&lt;StringBuilder&gt; iterable = Lists.newArrayList(new StringBuilder(&quot;a1&quot;), new StringBuilder(&quot;a2&quot;), new StringBuilder(&quot;a3&quot;));;         Collection&lt;StringBuilder&gt; apache = Lists.newArrayList(new StringBuilder(&quot;a1&quot;), new StringBuilder(&quot;a2&quot;), new StringBuilder(&quot;a3&quot;));         MutableCollection&lt;StringBuilder&gt; gs = FastList.newListWith(new StringBuilder(&quot;a1&quot;), new StringBuilder(&quot;a2&quot;), new StringBuilder(&quot;a3&quot;));          \/\/ \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438         jdk.stream().forEach((s) -&gt; s.append(&quot;_1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e jdk         Iterable&lt;StringBuilder&gt; guava = Iterables.transform(iterable, (s) -&gt; s.append(&quot;_1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e guava         CollectionUtils.transform(apache, (s) -&gt; s.append(&quot;_1&quot;)); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e apache         gs.forEach((Procedure&lt;StringBuilder&gt;) (s) -&gt; s.append(&quot;_1&quot;));  \/\/ c \u043f\u043e\u043c\u043e\u0449\u044c\u044e gs          System.out.println(&quot;change = &quot; + jdk + &quot;:&quot; + guava + &quot;:&quot; + apache + &quot;:&quot; + gs); \/\/ changeAll = [a1_1, a2_1, a3_1]:[a1_1, a2_1, a3_1]:[a1_1, a2_1, a3_1]:[a1_1, a2_1, a3_1] <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h2><b>VI. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h2>\n<h3>5.1 \u041a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/h3>\n<p>   \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 (\u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Java, \u0430 \u0432\u043e\u043e\u0431\u0449\u0435):<br \/>   1) <b>\u0412\u0435\u043a\u0442\u043e\u0440 (\u0421\u043f\u0438\u0441\u043e\u043a)<\/b>\u2014 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443,<br \/>   \u2014 <i>\u041c\u0430\u0441\u0441\u0438\u0432<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c<br \/>   \u2014 <i>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f,<br \/>   \u2014 <i>\u041e\u0434\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430<br \/>   \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e \u0433\u0438\u0431\u043e\u043a,<br \/>   \u2014 <i>\u0414\u0432\u0443\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430<br \/>   \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442,<br \/>   2) <b>\u0421\u0442\u0435\u043a (Stack)<\/b> \u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u00abLIFO\u00bb (\u00ab\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u043f\u0440\u0438\u0448\u0451\u043b \u2014 \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u044b\u0448\u0435\u043b\u00bb). \u0412<br \/>   \u0441\u0442\u0435\u043a\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0449\u0451 \u043d\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\/\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d.<br \/>   3) <b>\u041e\u0447\u0435\u0440\u0435\u0434\u044c (Queue)<\/b> \u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u00abFIFO\u00bb (\u00ab\u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0440\u0438\u0448\u0451\u043b\u2014 \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u044b\u0448\u0435\u043b\u00bb). \u0412<br \/>   \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0441\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0432\u044b\u043c \u0438\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0438 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\/\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d.<br \/>   4) <b>\u0414\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c (Double-ended queue)<\/b> \u2014 \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438<br \/>   \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u0441 \u043a\u043e\u043d\u0446\u0430.<br \/>   5) <b>\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c (\u0430\u043d\u0433\u043b. priority queue)<\/b> \u2014 \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u044c<br \/>   \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c. \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430,<br \/>   \u2014 <i>\u043a\u0443\u0447\u0430 (heap)<\/i> \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0440\u0435\u0432\u0430,<br \/>   6) <b>\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 (\u0441\u043b\u043e\u0432\u0430\u0440\u044c), (Associative array, Dictionary)<\/b> \u2014 \u043d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f<br \/>   \u043f\u0430\u0440\u044b \u00ab\u043a\u043b\u044e\u0447\u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00bb<br \/>   \u2014 <i>\u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 (hashtable)<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0445\u0435\u0448\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f,<br \/>   \u2014 <i>\u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0432\u044f\u0437\u044f\u043c\u0438 \u043e\u0434\u0438\u043d \u043a\u043e \u043c\u043d\u043e\u0433\u0438\u043c (Multimap \u0438\u043b\u0438 multihash)<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u0440\u0430\u043d\u0438\u0442<br \/>   \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447 \u0438 \u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439,<br \/>   \u2014 <i>\u0414\u0432\u0443\u0445-\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 (bi-map)<\/i> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<br \/>   \u043f\u043e \u043a\u043b\u044e\u0447\u0443, \u0442\u0430\u043a \u0438 \u043a\u043b\u044e\u0447 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e,<br \/>   \u2014 <i>\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 (hashtable)<\/i> \u2014 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f,<br \/>   \u2014 <i>\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 (hashtable)<\/i> \u2014 \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, <br \/>   7) <b>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b>\u2014 \u043d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u043d\u0430\u0431\u043e\u0440 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435<br \/>   \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438,<br \/>   \u2014 <i>\u041c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i>\u2014 \u043d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443, \u043d\u043e \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0430\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<br \/>   \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u0432\u0443\u0445 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439,<br \/>   \u2014 <i> \u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i>\u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443, \u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f,<br \/>   \u2014 <i> \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i>\u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443, \u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, <br \/>   8)<b>\u0411\u0438\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/b> \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 1 \u0438\u043b\u0438 0,<br \/>   9) <b>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u044b\u0442\u044b\u0445 \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/b> \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438<br \/>   \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u043c\u0438,<br \/>   10) <b>\u0414\u0435\u0440\u0435\u0432\u044c\u044f<\/b> \u2014 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0434\u0435\u0440\u0435\u0432\u0430,<br \/>   11) <b>\u041a\u0435\u0448\u0438<\/b> \u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438,<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u0430\u043a\u0438\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c Java \u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a:<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435<\/b>: \u0435\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.  <\/p>\n<table>\n<tr>\n<th width=\"130\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/th>\n<th>List<\/th>\n<th>Set<\/th>\n<th>Map<\/th>\n<th>Query<br \/>   Dequery \u0438<br \/>   \u0442.\u043f. \u0432 JDK<\/th>\n<th>guava<\/th>\n<th>apache<\/th>\n<th>gc-collections<\/th>\n<\/tr>\n<tr>\n<td>1) <b>\u0412\u0435\u043a\u0442\u043e\u0440 (\u0421\u043f\u0438\u0441\u043e\u043a)<\/b><br \/>  <i>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/i><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/list\/TreeList.html\">TreeList<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/list\/mutable\/FastList.html\">FastList<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u0414\u0432\u0443\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/i><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/list\/NodeCachingLinkedList.html\">NodeCachingLinkedList<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>2) <b>\u0421\u0442\u0435\u043a (Stack)<\/b><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/stack\/mutable\/ArrayStack.html\">ArrayStack<\/a><\/td>\n<\/tr>\n<tr>\n<td>3) <b>\u041e\u0447\u0435\u0440\u0435\u0434\u044c (Queue)<\/b><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/queue\/CircularFifoQueue.html\">CircularFifoQueue<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>4) <b>\u0414\u0432\u0443\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c<\/b><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedList.html\">LinkedList<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/ArrayDeque.html\">ArrayDeque<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>5) <b>\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c<\/b><br \/>  <i>\u043a\u0443\u0447\u0430 (heap)<\/i><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/PriorityQueue.html\">PriorityQueue<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>6) <b>\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 (\u0441\u043b\u043e\u0432\u0430\u0440\u044c)<\/b><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/HashedMap.html\">HashedMap<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/mutable\/UnifiedMap.html\">UnifiedMap<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 (hashtable)<\/i><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashMap.html\">HashMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/HashedMap.html\">HashedMap<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/mutable\/UnifiedMap.html\">UnifiedMap<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u0425\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0432\u044f\u0437\u044f\u043c\u0438 \u043e\u0434\u0438\u043d \u043a\u043e \u043c\u043d\u043e\u0433\u0438\u043c<\/i><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/Multimap.html\">Multimap<\/a><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/MultiMap.html\">MultiMap<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/api\/multimap\/Multimap.html\">Multimap<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u0414\u0432\u0443\u0445-\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/i><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/HashBiMap.html\">HashBiMap<\/a><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/BidiMap.html\">BidiMap<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bimap\/mutable\/HashBiMap.html\">HashBiMap<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/i><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/map\/LinkedMap.html\">LinkedMap<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><i>\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/i><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeSet.html\">TreeSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeMap.html\">TreeMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/trie\/PatriciaTrie.html\">PatriciaTrie<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/map\/sorted\/mutable\/TreeSortedMap.html\">TreeSortedMap<\/a><\/td>\n<\/tr>\n<tr>\n<td>7) <b>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/b><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/HashSet.html\">HashSet<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/mutable\/UnifiedSet.html\">UnifiedSet<\/a><\/td>\n<\/tr>\n<tr>\n<td><i>\u041c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/HashMultiset.html\">HashMultiset<\/a><\/td>\n<td><a href=\"http:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/bag\/HashBag.html\">HashBag<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/bag\/mutable\/HashBag.html\">HashBag<\/a><\/td>\n<\/tr>\n<tr>\n<td><i> \u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashSet.html\">LinkedHashSet<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><i> \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/i><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeSet.html\">TreeSet<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/sorted\/mutable\/TreeSortedSet.html\">TreeSortedSet<\/a><\/td>\n<\/tr>\n<tr>\n<td>8)<b>\u0411\u0438\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/b><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/BitSet.html\">BitSet<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>9) <b>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u044b\u0442\u044b\u0445 \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/b><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/RangeSet.html\">RangeSet<\/a><br \/>  <a href=\"http:\/\/google.github.io\/guava\/releases\/snapshot\/api\/docs\/com\/google\/common\/collect\/RangeMap.html\">RangeMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>10) <b>\u0414\u0435\u0440\u0435\u0432\u044c\u044f<\/b><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeSet.html\">TreeSet<\/a><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/TreeMap.html\">TreeMap<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/commons.apache.org\/proper\/commons-collections\/javadocs\/api-release\/org\/apache\/commons\/collections4\/trie\/PatriciaTrie.html\">PatriciaTrie<\/a><\/td>\n<td><a href=\"http:\/\/www.goldmansachs.com\/gs-collections\/javadoc\/6.1.0\/com\/gs\/collections\/impl\/set\/sorted\/mutable\/TreeSortedSet.html\">TreeSortedSet<\/a><\/td>\n<\/tr>\n<tr>\n<td>11)<b>\u041a\u0435\u0448\u0438<\/b><\/td>\n<td><\/td>\n<td><\/td>\n<td><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/LinkedHashMap.html\">LinkedHashMap<\/a><br \/>  <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/WeakHashMap.html\">WeakHashMap<\/a><\/td>\n<td><\/td>\n<td><a href=\"http:\/\/docs.guava-libraries.googlecode.com\/git\/javadoc\/com\/google\/common\/cache\/LoadingCache.html\">LoadingCache<\/a><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<h2>VII. \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043a\u0430\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0445\u0443\u0436\u0435 \u0438\u043b\u0438 \u043b\u0443\u0447\u0448\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0432\u043a\u0443\u0441\u0430, \u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0442\u044c \u0433\u0434\u0435 \u0438\u0441\u043a\u0430\u0442\u044c. \u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0437\u0430 \u0442\u043e \u0447\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b\u0438 (\u0438\u043b\u0438 \u0434\u043e\u043b\u0438\u0441\u0442\u0430\u043b\u0438) \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u044b \u0441\u0443\u043c\u0435\u043b\u0438 \u043d\u0430\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/Vedenin\/java_collections_overview\">github&#8217;\u0435<\/a>.<\/p>\n<p>  <b>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438<\/b>:<br \/>  1. <a href=\"http:\/\/habrahabr.ru\/company\/luxoft\/blog\/157273\/\">\u041e\u0431\u0437\u043e\u0440 java.util.concurrent.* tutorial<\/a><br \/>  2. <a href=\"http:\/\/java-performance.info\/primitive-types-collections-trove-library\/\">Trove library: using primitive collections for performance<\/a><br \/>  3. <a href=\"http:\/\/java-performance.com\/\">Java performance tuning tips<\/a><br \/>  4. <a href=\"http:\/\/java-performance.info\/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015\/\">Large HashMap overview<\/a><br \/>  5. <a href=\"http:\/\/java-performance.info\/memory-consumption-of-java-data-types-1\/\">Memory consumption of popular Java data types<\/a><br \/>  6. \u0418, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, javadoc \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0432\u0441\u0435\u0445 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a        \t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u041a\u0430\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"256877\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"14137\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69325\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69325\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69325\">Guava<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69327\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69327\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69327\">Apache Commons Collections<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69329\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69329\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69329\">Trove<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69331\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69331\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69331\">GC-collections<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69333\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69333\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69333\">Fastutil<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69335\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69335\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69335\">HPPC<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69337\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69337\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69337\">Koloboke<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69339\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69339\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69339\">GlazedLists collections<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69341\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69341\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69341\">Concurrent Building Blocks<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69343\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69343\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69343\">Functional Java<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69345\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69345\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69345\">Primitive Collections for Java<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69347\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69347\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69347\">Apache Jakarta Commons Primitives<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69349\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69349\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69349\">Chronicle-Queue<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69351\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69351\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69351\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0441\u0432\u043e\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69353\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69353\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69353\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 JDK<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv69355\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"69355\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv69355\">\u0414\u0440\u0443\u0433\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 (\u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043a\u0430\u043a\u0430\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445)<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"total\">\u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b 1 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.<\/p>\n<\/p><\/form>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/habrahabr.ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/256877\/\"> http:\/\/habrahabr.ru\/post\/256877\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 Java. \u042d\u0442\u043e \u0442\u0435\u043c\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e Java \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0435 \u043e\u0441\u0432\u043e\u0438\u043b\u0438 \u0432\u0441\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u0430\u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0441 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a guava, apache, trove \u0438 \u0440\u044f\u0434 \u0434\u0440\u0443\u0433\u0438\u0445. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u0438\u0440\u0435 Java \u0438 \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/727\/bf4\/436\/727bf44364b7422ba39240661856d73b.jpg\"\/><\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u0430\u043a \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 (\u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c), \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0434\u0443\u0442 \u0432 \u043d\u0435\u0439 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u044e\u0442 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-266924","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/266924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=266924"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/266924\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=266924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=266924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=266924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}