𝗝𝗮𝘃𝗮 𝗖𝗼𝗹𝗹𝗲𝗰𝘁𝗶𝗼𝗻𝘀: ਉਹ ਛੁਪੇ ਹੋਏ ਟੂਲ ਜੋ ਤੁਸੀਂ ਮਿਸ ਕਰ ਰਹੇ ਹੋ

ਜ਼ਿਆਦਾਤਰ ਡਿਵੈਲਪਰ ਹਰ ਰੋਜ਼ Java collections ਦੀ ਵਰਤੋਂ ਇੱਕੋ ਤਰੀਕੇ ਨਾਲ ਕਰਦੇ ਹਨ। ਉਹ ArrayLists ਅਤੇ HashSets ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਪਰ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਉਹਨਾਂ ਟੂਲਸ ਨੂੰ ਮਿਸ ਕਰ ਰਹੇ ਹੋ ਜੋ ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਤੇਜ਼ ਅਤੇ ਸੁਰੱਖਿਅਤ ਬਣਾ ਸਕਦੇ ਹਨ।

ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਇੱਥੇ ਤਿੰਨ ਖਾਸ ਟੂਲ ਦਿੱਤੇ ਗਏ ਹਨ।

  1. Arrays.asList ਇੱਕ ਅਸਲੀ List ਨਹੀਂ ਹੈ

ਜਦੋਂ ਤੁਸੀਂ Arrays.asList(array) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਫਿਕਸਡ-ਸਾਈਜ਼ (fixed-size) ਲਿਸਟ ਮਿਲਦੀ ਹੈ। ਇਹ ਸਿੱਧਾ ਤੁਹਾਡੀ ਅਸਲੀ array ਨਾਲ ਜੁੜੀ ਹੁੰਦੀ ਹੈ।

  • ਜੇਕਰ ਤੁਸੀਂ array ਨੂੰ ਬਦਲਦੇ ਹੋ, ਤਾਂ list ਵੀ ਬਦਲ ਜਾਂਦੀ ਹੈ।
  • ਜੇਕਰ ਤੁਸੀਂ ਆਈਟਮਾਂ ਨੂੰ ਜੋੜਨ ਜਾਂ ਹਟਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡਾ ਕੋਡ ਇੱਕ ਐਰਰ (error) ਨਾਲ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਵੇਗਾ।

ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਇਸ ਨੂੰ ਇੱਕ ਨਵੀਂ ArrayList ਵਿੱਚ ਰੈਪ (wrap) ਕਰੋ: List<String> list = new ArrayList<>(Arrays.asList(array));

ਇਹ ਇੱਕ ਅਸਲੀ, ਸੁਤੰਤਰ (independent) ਲਿਸਟ ਬਣਾਉਂਦਾ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਸਕਦੇ ਹੋ।

  1. ਪਰਫਾਰਮੈਂਸ ਲਈ EnumSet ਦੀ ਵਰਤੋਂ ਕਰੋ

ਕੀ ਤੁਸੀਂ enums ਨੂੰ HashSet ਵਿੱਚ ਸਟੋਰ ਕਰਦੇ ਹੋ? ਇਹ ਬੇਲੋੜਾ ਓਵਰਹੈੱਡ (overhead) ਪੈਦਾ ਕਰਦਾ ਹੈ। HashSets ਹੈਸ਼ ਟੇਬਲ (hash tables) ਅਤੇ ਆਬਜੈਕਟ ਹੈਡਰ (object headers) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।

ਇਸ ਦੀ ਬਜਾਏ EnumSet ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਇੱਕ bit vector ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਬਹੁਤ ਤੇਜ਼ ਹੈ ਅਤੇ ਲਗਭਗ ਕੋਈ ਮੈਮੋਰੀ ਨਹੀਂ