¾ðÊó²Ê³Ø¤ò³Ø¤ÖÂç³ØÀ¸¤¬¥×¥í¥°¥é¥ß¥ó¥°(C¸À¸ì,Java¤Ê¤É)¡¢¥Í¥Ã¥È¥ï¡¼¥¯¡¢»ñ³Ê»î¸³(¾ðÊó½èÍýµ»½Ñ¼Ô»î¸³,CCNA)¤Ê¤É¤Ë´Ø¤¹¤ëµ»ö¤ò½ñ¤¤¤Æ¤¤¤Þ¤¹¡£
¡ÖEffective Java ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¥¬¥¤¥É¡×¤òÆÉ¤ó¤Ç¤¤¤¿¤é¡¢°ÊÁ°¤Î¥¨¥ó¥È¥ê¡ÖJava¤Ç³Ø¤Ö¥Ç¡¼¥¿¹½Â¤ÆþÌç01¡Ý¥¹¥¿¥Ã¥¯(2/3)¡Ý¥¸¥§¥Í¥ê¥¯¥¹¤Î¼ÂÁõ¡×¤Ç¾Ü²ò¤·¤¿¥¹¥¿¥Ã¥¯¤Î¥×¥í¥°¥é¥à¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤Î²ÄǽÀ¤¬¤¢¤ë¤³¤È¤Ëµ¤ÉÕ¤¤Þ¤·¤¿¡£
Java¤Ç¤Ï¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó(GC)¤¬¹Ô¤ï¤ì¤ë¤¿¤á¡¢¥á¥â¥ê´ÉÍý¤ò¤¢¤Þ¤ê°Õ¼±¤¹¤ë¤³¤È¤Ê¤¯¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢¤½¤³¤ËÂç¤¤Êæ«¤¬¤¢¤ê¤Þ¤·¤¿¡£
¤Þ¤º¤Ï¡¢¼¡¤Î¥×¥í¥°¥é¥à¡ÊºÆ·Ç¡Ë¤ò¤´Í÷²¼¤µ¤¤¡£¤³¤ì¤ò¸«¤Æ¡¢¤É¤³¤Ë¥á¥â¥ê¥ê¡¼¥¯¤Î²ÄǽÀ¤¬Àø¤ó¤Ç¤¤¤ë¤«¸«¤Ä¤±¤é¤ì¤ë¤Ç¤·¤ç¤¦¤«¡©
public class MyStack{ private T[] stack; private int sp; /* stack pointer */ private final static int DEFAULT_CAPACITY = 10; private int capacity; public MyStack() { this(DEFAULT_CAPACITY); } public MyStack(int initialCapacity) { capacity = initialCapacity; stack = (T[]) new Object[initialCapacity]; } public void push(T item) { stack[sp++] = item; capacityCheck(); } public T pop() { return stack[--sp]; } private void capacityCheck() { if(sp >= capacity) expandCapacity(); } private void expandCapacity() { capacity *= 2; Object[] oldStack = stack; stack = (T[]) new Object[capacity]; System.arraycopy(oldStack, 0, stack, 0, sp); } }
¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¥¹¥¿¥Ã¥¯¤òÇÛÎó¤Ë¤è¤Ã¤Æ¼ÂÁõ¤·¤Æ¤ª¤ê¡¢push¤µ¤ì¤ë¤¿¤Ó¤Ë¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇÛÎó¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢ÇÛÎ󤬤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤ë¤È¡¢expandCapacity¤ò¸Æ¤Ó½Ð¤·¤ÆÇÛÎó¤òÂ礤¯¤·¤Þ¤¹¡£
¤·¤«¤·¡¢pop¤µ¤ì¤¿¤È¤¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ÎÃͤò¥Ç¥¯¥ê¥á¥ó¥È¤·¤Æ¡¢¥¹¥¿¥Ã¥¯¤ÎÀèÆ¬Í×ÁǤòreturn¤¹¤ë¤À¤±¤Ê¤Î¤Ç¡¢¸«¤«¤±¾å¤Ï¥¹¥¿¥Ã¥¯¤«¤éÍ×ÁǤ¬¼è¤ê½ü¤«¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤ÏÇÛÎó¤Ë³ÊǼ¤µ¤ì¤¿¤Þ¤Þ¤Ê¤Î¤Ç»²¾È¤Ï°Ý»ý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¥¬¡¼¥Ù¥¸¡¦¥³¥ì¥¯¥¿¤Ï¤É¤³¤«¤é¤â»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò²ó¼ý¤ÎÂоݤËÁª¤Ó¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¤è¤¦¤Ê¼ÂºÝ¤Ë¤Ï»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¤±¤É»²¾È¤µ¤ì¤¿¤Þ¤Þ¡Ê¢¨¤³¤Î¾õÂÖ¤òEffective Java¤Ç¤Ï¡ÖÇѤ줿»²¾È(obsolete reference)¡×¤È¸Æ¤ó¤Ç¤¤¤Þ¤¹¡Ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï²ó¼ý¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
¤³¤¦¤·¤Æ¡¢»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¤Î¤Ë²ó¼ý¤·¤Æ¤â¤é¤¨¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤¬Áý¤¨¤Æ¤¤¤¯¤È¡¢¤·¤Þ¤¤¤Ë¤Ï¥á¥â¥ê¥ê¡¼¥¯¤òµ¯¤³¤·¤Æ¤·¤Þ¤¦²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¡Ê¢¨¤·¤«¤·¡¢ºÇ¶á¤Î¥Þ¥·¥ó¤Ï¥á¥â¥êÎ̤¬Â¿¤¤¤¿¤á¡¢¤è¤Û¤É»È¤¤¤¹¤®¤Ê¤¤¸Â¤ê¥á¥â¥ê¤¬Â¤ê¤Ê¤¯¤Ê¤Ã¤Æ»ß¤Þ¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡Ë
¤µ¤Æ¡¢pop¤Î¼ÂÁõ¤ËÌäÂ꤬¤¢¤ë¤³¤È¤Ï¤ï¤«¤ê¤Þ¤·¤¿¤¬¤É¤Î¤è¤¦¤Ë½¤Àµ¤ò¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©¼Â¤Ï´Êñ¤Ç¤¹¡£Íפϡ¢»²¾È¤¬ÇѤ줿¤é¤½¤Î¤³¤È¤òÌÀ¼¨¤¹¤ì¤Ð¤è¤¤¤Î¤Ç¡¢pop¤ÎºÝ¤Ëreturn¤·¤¿Í×ÁǤ¬Æþ¤Ã¤Æ¤¤¤¿Îΰè¤Ënull¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
public T pop() {
Object result = stack[--sp];
stack[sp] = null;
return result;
}
![]() | Effective Java ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¥¬¥¤¥É Joshua Bloch ¥Ô¥¢¥½¥ó¡¦¥¨¥Ç¥å¥±¡¼¥·¥ç¥ó 2001-12-03 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 2841 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯:
![]()
Author:TBVector
»ä¤Î¥µ¥¤¥È
¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÈRSS
ͧã¤Î¥µ¥¤¥È
¤¢¤ï¤»¤ÆÆÉ¤ß¤¿¤¤
¤Ï¤Æ¤Ê¥ê¥ó¥°