ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ09·î02Æü(ÅÚ) 20:01:58ÍúÎò
¡¡¤½¤ÎÃæ¤Ç¤â¡¢HushSet ¤È List ¤ÏÉÑÈˤ˻ÈÍѤµ¤ì¤ë¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¤¬¡¢¤½¤ì¤¾¤ì¤ÎŬÀڤʱ¿ÍÑÊýË¡¤Ï¤É¤¦¤¹¤ë¤Ù¤¤«¡¢
HushSet¤ÈList¤Î°ã¤¤¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¡¢¥²¡¼¥àÆâ¤Ç¤Î¼ÂºÝ¤Î»ÈÍÑÎã¤òÄ󶡤·¤Þ¤¹¡£
¡¡HashSet(¥Ï¥Ã¥·¥å¥»¥Ã¥È)¤Ï¡¢°ì°Õ¤ÊÃͤΥ³¥ì¥¯¥·¥ç¥ó¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£
Ʊ¤¸Ãͤò½ÅÊ£¤·¤Æ³ÊǼ¤Ç¤¤Ê¤¤¤¿¤á¡¢¥Ç¡¼¥¿¤Î°ì´ÓÀ¤òÊݤĤΤËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢¥²¡¼¥àÆâ¤Î¥æ¥Ë¡¼¥¯¤Ê¥¢¥¤¥Æ¥à¥ê¥¹¥È¤ò´ÉÍý¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£
»²¹Í¥µ¥¤¥È
MisroSoft
HashSet ¥¯¥é¥¹
¡¡List¤Ï¡¢½ç½øÉÕ¤¤ÎÍ×ÁǤΥꥹ¥È¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£
Í×ÁǤνÅÊ£¤òµöÍÆ¤·¤Þ¤¹¡£¤Þ¤¿Í×ÁǤòÄɲ乤ë¤ÈËöÈø¤Ë²Ã¤¨¤é¤ì¤ë¤¿¤á¡¢½çÈ֤δÉÍý¤¬ÍѰդǤ¹¡£
¡¡Î㤨¤Ð¡¢¥×¥ì¥¤¥ä¡¼¤Î½ê»ý¥¢¥¤¥Æ¥à¥ê¥¹¥È¤Ê¤É¡¢½ç½ø¤¬½ÅÍפʾì¹ç¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
MisroSoft
List ¥¯¥é¥¹
¡¡HushSet¤ÈList¤Î¼ç¤Ê°ã¤¤¤Ï°Ê²¼¤Ç¤¹¡£¤½¤ì¤¾¤ì¤òÈæ³Ó¤·¤Ê¤¬¤é¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
HashSet: °ì°Õ¤ÊÃͤò¸¡º÷¤¹¤ë¤Î¤ËÈó¾ï¤Ë¹â®¡£ List: Í×ÁǤò¸¡º÷¤¹¤ë¤Î¤Ë¤ÏŬ¤·¤Æ¤¤¤Ê¤¤¤¬¡¢Í×ÁǤΰÌÃ֤˥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ï®¤¤¡£
¡¡¾ÜºÙ¤ÊÈæ³Ó¤ò¹Ô¤¦¤¿¤á¤Ë¡¢¥²¡¼¥àÆâ¤Ç¤Î¶ñÂÎŪ¤Ê±¿ÍѤ˴ð¤Å¤¤¤¿¥µ¥ó¥×¥ë¥³¡¼¥É¤òÄ󶡤·¤Þ¤¹¡£
°Ê²¼¤Ï¡¢HushSet¤ÈList¤ò»ÈÍѤ·¤Æ¥²¡¼¥àÆâ¤Ç¥×¥ì¥¤¥ä¡¼¤Î½ê»ý¥¢¥¤¥Æ¥à¤ò´ÉÍý¤¹¤ë¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤¹¡£
¡¡¤½¤ì¤¾¤ì½çÈ֤˷Ǻܤ·¤Þ¤¹¡£
using System; using System.Collections.Generic; public class GameManager : MonoBehaviour { HashSet<string> uniqueItems = new HashSet<string>(); void Start() { // ¥æ¥Ë¡¼¥¯¤Ê¥¢¥¤¥Æ¥à¤òÄɲà uniqueItems.Add("Sword"); uniqueItems.Add("Shield"); uniqueItems.Add("Potion"); uniqueItems.Add("Sword"); // ½ÅÊ£¤·¤¿¥¢¥¤¥Æ¥à¤ÏÄɲ䵤ì¤Ê¤¤ // ¥æ¥Ë¡¼¥¯¤Ê¥¢¥¤¥Æ¥à¤Î°ìÍ÷¤òɽ¼¨ foreach (string item in uniqueItems) { Debug.Log(item); } } }
¡¡¤³¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤Ï¡¢HashSet¤ò»ÈÍѤ·¤Æ¥×¥ì¥¤¥ä¡¼¤Î½ê»ý¥¢¥¤¥Æ¥à¤ò´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
HashSet¤Ï½ÅÊ£¤òµöÍÆ¤·¤Ê¤¤¤¿¤á¡¢Æ±¤¸¥¢¥¤¥Æ¥à¤¬Ê£¿ô²óÄɲ䵤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
using System; using System.Collections.Generic; public class PlayerInventory : MonoBehaviour { List<string> items = new List<string>(); void Start() { // ¥¢¥¤¥Æ¥à¤òÄɲà items.Add("Sword"); items.Add("Shield"); items.Add("Potion"); items.Add("Sword"); // ½ÅÊ£¤·¤¿¥¢¥¤¥Æ¥à¤âÄɲòÄǽ // ¥¢¥¤¥Æ¥à¤Î°ìÍ÷¤òɽ¼¨ foreach (string item in items) { Debug.Log(item); } } }
¡¡¤³¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤Ï¡¢List¤ò»ÈÍѤ·¤Æ¥×¥ì¥¤¥ä¡¼¤Î½ê»ý¥¢¥¤¥Æ¥à¤ò´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
List¤Ï½ÅÊ£¤òµöÍÆ¤¹¤ë¤¿¤á¡¢Æ±¤¸¥¢¥¤¥Æ¥à¤¬Ê£¿ô²óÄɲ乤뤳¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡°ì°Õ¤ÊÍ×ÁǤ¬É¬Íפʾì¹ç¡¢¤Ä¤Þ¤êƱ¤¸ÃͤÎÍ×ÁǤ¬½ÅÊ£¤·¤ÆÂ¸ºß¤·¤Ê¤¤¤³¤È¤¬µá¤á¤é¤ì¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£
¡¡¡¡¡¡Îã: ¥×¥ì¥¤¥ä¡¼¤Î½ê»ý¥¢¥¤¥Æ¥à¤ò½ÅÊ£¤·¤Ê¤¤·Á¼°(Âç»ö¤Ê¤â¤Î·Ï)¤Ç´ÉÍý¤¹¤ë¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤ÎãÀ®¤·¤¿À®²Ì(¥¢¥Á¡¼¥Ö¥á¥ó¥È)¤Ê¤É¡£
¡¡Æ±¤¸Í×ÁǤ¬Ê£¿ô²ó¸½¤ì¤ë²ÄǽÀ¤¬¤¢¤ë¾ì¹ç¡¢List¤ò»ÈÍѤ·¤Þ¤¹¡£
¡¡¡¡¡¡Îã: ¥×¥ì¥¤¥ä¡¼¤Î¹Ôư¥í¥°¡¢¥¹¥³¥¢¥é¥ó¥¥ó¥°¤Î¥¹¥³¥¢¡¢¥¢¥¤¥Æ¥à¤Î½êºßÃϥꥹ¥È¡¢¥²¡¼¥àÆâ¤ËÅо줷¤Æ¤¤¤ëŨ¤Î¥ê¥¹¥È¤Ê¤É¡£
¡¡Í×ÁÇ¤Î½ç½ø¤¬½ÅÍפǤʤ¤¾ì¹ç¡¢HashSet¤ò»ÈÍѤ·¤Þ¤¹¡£°ì°ÕÀ¤¬½ÅÍ×¤Ç½ç½ø¤ÏÌäÂê¤Ç¤Ï¤Ê¤¤¾ì¹ç¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¥¢¥¤¥Æ¥à¤Ç¸À¤¨¤Ð¡¢»ý¤Ã¤Æ¤¤¤ë¤«¡¢»ý¤Ã¤Æ¤¤¤Ê¤¤¤«¡¢¥Õ¥é¥°´ÉÍý¤Ç¸À¤¨¤Ð¡¢¤½¤Î¥Õ¥é¥°¤¬¥ª¥ó¤«¥ª¥Õ¤«¡¢¤È¤¤¤¦·Á¤Ç¡¢½çÈ֤˺¸±¦¤µ¤ì¤Ê¤¤¥±¡¼¥¹¤Ç¤¹¡£
¡¡Í×ÁÇ¤Î½ç½ø¤¬½ÅÍפʾì¹ç¡¢List¤ò»ÈÍѤ·¤Þ¤¹¡£Í×ÁǤÎÄɲää¼è¤ê½Ð¤·¤Î½ç½ø¤¬½ÅÍפʾì¹ç¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡°ì°Õ¤ÊÍ×ÁǤò¹â®¤Ë¸¡º÷¤¹¤ë¾ì¹ç¡¢HashSet¤¬Å¬¤·¤Æ¤¤¤Þ¤¹¡£Í×ÁǤÎÄɲääºï½ü¤â¹â®¤Ç¤¹¡£
¡¡ÆÃÄê¤Î°ÌÃÖ¤ÎÍ×ÁǤ˥¢¥¯¥»¥¹¤¬É¬Íפʾì¹ç¡¢List¤ò»ÈÍѤ·¤Þ¤¹¡£
Í×ÁǤΰÌÃÖ¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç»ØÄꤷ¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤Î¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡½ÅÊ£¤·¤¿Í×ÁǤâ³ÊǼ¤Ç¤¤ë¤¿¤á¡¢Æ±¤¸Í×ÁǤòÊ£¿ô²ó³ÊǼ¤¹¤ë¾ì¹ç¡¢¥á¥â¥ê»ÈÍÑÎ̤¬Áý²Ã¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
¡¡
¡¡¤³¤ì¤é¤Î¥Ý¥¤¥ó¥È¤ò¹Íθ¤·¤Ê¤¬¤é¡¢¥×¥í¥¸¥§¥¯¥È¤ÎÍ×·ï¤Ë¹ç¤ï¤»¤ÆHashSet¤ÈList¤Î»È¤¤Ê¬¤±¤ò¹Ô¤¦¤³¤È¤¬ÂçÀڤǤ¹¡£
°ì°ÕÀ¡¢½ç½ø¡¢¸¡º÷¤Î¸úΨ¡¢¥á¥â¥ê»ÈÍÑÎ̤ʤɤÎÍ×°ø¤ò¸¡Æ¤¤·¡¢Å¬Àڤʥǡ¼¥¿¹½Â¤¤òÁªÂò¤·¤Þ¤·¤ç¤¦¡£
¡¡½é¿´¼Ô¤Ç¤¢¤Ã¤Æ¤â¡¢¤³¤ì¤é¤Î´ðËÜŪ¤Ê¹Íθ»ö¹à¤òÍý²ò¤¹¤ì¤Ð¡¢HashSet¤ÈList¤Î»È¤¤Ê¬¤±¤¬¤è¤êÍÆ°×¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¥²¡¼¥à¤Î¿Ê¹Ô¾õ¶·¤Ê¤É¤ò¥Õ¥é¥°¤òÍøÍѤ·¤Æ´ÉÍý¤·¤¿¾ì¹ç¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤¹¡£
¡¡HashSet¤Ï°ì°Õ¤ÊÍ×ÁǤò³ÊǼ¤¹¤ë¤¿¤á¡¢½ÅÊ£¤òµöÍÆ¤»¤º¡¢¹â®¤Ê¸¡º÷¤¬²Äǽ¤Ç¤¹¡£
°Ê²¼¤Ë¡¢HashSet¤ò»ÈÍѤ·¤¿¥Õ¥é¥°´ÉÍý¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤ò¼¨¤·¤Þ¤¹¡£
using System.Collections.Generic; using UnityEngine; public class FlagManager : MonoBehaviour { HashSet<string> flags = new HashSet<string>(); /// <summary> /// ¥Õ¥é¥°¤òÀßÄꤷ¤Þ¤¹¡£ /// </summary> /// <param name="flag">ÀßÄꤹ¤ë¥Õ¥é¥°Ì¾</param> void SetFlag(string flag) { flags.Add(flag); } /// <summary> /// »ØÄꤷ¤¿¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£ /// </summary> /// <param name="flag">³Îǧ¤¹¤ë¥Õ¥é¥°Ì¾</param> /// <returns>¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ðtrue¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ðfalse</returns> bool HasFlag(string flag) { return flags.Contains(flag); } /// <summary> /// »ØÄꤷ¤¿¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¡¢¥í¥°¤Ë½ÐÎϤ·¤Þ¤¹¡£ /// </summary> /// <param name="flag">³Îǧ¤¹¤ë¥Õ¥é¥°Ì¾</param> void CheckAndLogFlag(string flag) { if (HasFlag(flag)) { Debug.Log($"{flag} is set."); } else { Debug.Log($"{flag} is not set."); } } void Start() { // ¥Õ¥é¥°¤ÎÀßÄê SetFlag("Flag1"); SetFlag("Flag2"); SetFlag("Flag1"); // Ʊ¤¸¥Õ¥é¥°¤òºÆÅÙÀßÄꤷ¤Æ¤â½ÅÊ£¤Ï̵»ë¤µ¤ì¤ë // ¥Õ¥é¥°¤Î³Îǧ¤È¥í¥°½ÐÎÏ CheckAndLogFlag("Flag1"); CheckAndLogFlag("Flag3"); } }
¡¡¤³¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤Ï¡¢HashSet¤ò»ÈÍѤ·¤Æ¥Õ¥é¥°¤ò´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
Ʊ¤¸¥Õ¥é¥°¤òÊ£¿ô²óÀßÄꤷ¤Æ¤â¡¢HashSet¤Ï½ÅÊ£¤ò̵»ë¤·¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢HasFlag¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ»ØÄꤷ¤¿¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤Ç¤¤Þ¤¹¡£
¡¡HashSet¤Ï¹â®¤Ê¸¡º÷¤òÄ󶡤·¡¢°ì°Õ¤Ê¥Õ¥é¥°¤ò´ÉÍý¤¹¤ë¤¿¤á¤ËÈó¾ï¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¥Õ¥é¥°´ÉÍý¤Î¾ìÌ̤ÇHashSet¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï°ìÈÌŪ¤ÊÁªÂò»è¡¢¥¢¥×¥í¡¼¥Á¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯