JAVA 프로그래밍

문제

제네릭 리스트에 점수 및 단어를 저장하고 출력하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요 

프로그램의 실행순서 및 실행상태

1  public static void main( String[] args ) {  

3                                 new GenericList<Integer>( 3 );
                 main()                                             
  scores        
  size                     (obj01)
  list                              
                                      

F1b  public GenericList( int capacity ) {

F1e  }
                 main()                                             
  scores        
         ()
capacity
    this
  size               (obj01)
  list    [0]         [1]         [2]   
                                    

2   GenericList<Integer> scores = 
                 main()                                             
  scores
                       

4   scores.add( 86 );

F2b  public void add( T item ) {

F2e  }
                 main()                                             
  scores (obj01)
         ()
    item
    this
  size             (obj01)
  list    [0]         [1]         [2]   
                          
        (obj02) 
          86   

5   scores.add( 89 );
                 main()                                             
  scores (obj01)
  size     1                 (obj01)
  list    [0]         [1]         [2]   
       (obj02)                    
        (obj02)    (obj03)
          86     

F2b  public void add( T item ) {
                 main()                                             
  scores (obj01)
         ()
    item
    this
  size     1                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)                     
        (obj02)     (obj03) 
          86         89   

F2e  }
                 main()                                             
  scores (obj01)
         ()
    item (obj03)
    this (obj01)
  size             (obj01)
  list    [0]         [1]         [2]   
        (obj02)           
        (obj02)     (obj03) 
          86         89   

6   scores.add( 90 );
                 main()                                             
  scores (obj01)
  size     2                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)           
        (obj02)     (obj03)     (obj04) 
          86         89     

F2b  public void add( T item ) {
                 main()                                             
  scores (obj01)
         ()
    item
    this
  size     2                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)           
        (obj02)     (obj03)     (obj04) 
          86         89         90   

F2e  }
                 main()                                             
  scores (obj01)
         ()
    item (obj04)
    this (obj01)
  size             (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

7   for( int i = 0; i < scores.size; i++ )
                 main()                                             
  scores (obj01)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

8       System.out.print( scores.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
       i    0   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

F3e  }
                 main()                                             
  scores (obj01)
       i    0   
         ()
   index    0   
    this (obj01)
return값
        
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

86 

7   for( int i = 0; i < scores.size; i++ )
                 main()                                             
  scores (obj01)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

8       System.out.print( scores.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
       i    1   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

F3e  }
                 main()                                             
  scores (obj01)
       i    1   
         ()
   index    1   
    this (obj01)
return값
        
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

89 

7   for( int i = 0; i < scores.size; i++ )
                 main()                                             
  scores (obj01)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

8       System.out.print( scores.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
       i    2   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

F3e  }
                 main()                                             
  scores (obj01)
       i    2   
         ()
   index    2   
    this (obj01)
return값
        
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

90 

7   for( int i = 0; i < scores.size; i++ )
                 main()                                             
  scores (obj01)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   

10                               new GenericList<String>( 3 ); 

F1b  public GenericList( int capacity ) {
                 main()                                             
  scores (obj01)
   words        
         ()
capacity
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size                       (obj05)
  list                              
                                      

F1e  }
                 main()                                             
  scores (obj01)
   words        
         ()
capacity 3
    this (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size               (obj05)
  list    [0]         [1]         [2]   
                                    

9   GenericList<String> words = 
                 main()                                             
  scores (obj01)
   words
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     0                 (obj05)
  list    [0]         [1]         [2]   
                                    

11   words.add( "apple" );
                 main()                                             
  scores (obj01)
   words (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     0                 (obj05)
  list    [0]         [1]         [2]   
                                    
        (obj06) 
      

F2b  public void add( T item ) {
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     0                   (obj05)
  list    [0]         [1]         [2]   
                                    
        (obj06) 
        'apple' 

F2e  }
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item (obj06)
    this (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size             (obj05)
  list    [0]         [1]         [2]   
                          
        (obj06) 
        'apple' 

12   words.add( "banana" );
                 main()                                             
  scores (obj01)
   words (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     1                 (obj05)
  list    [0]         [1]         [2]   
       (obj06)                    
        (obj06)    (obj07)
        'apple' 

F2b  public void add( T item ) {
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     1                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)                     
        (obj06)     (obj07) 
        'apple'  'banana'

F2e  }
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item (obj07)
    this (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size             (obj05)
  list    [0]         [1]         [2]   
        (obj06)           
        (obj06)     (obj07) 
        'apple'  'banana'

13   words.add( "carrot" );
                 main()                                             
  scores (obj01)
   words (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     2                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)           
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'  

F2b  public void add( T item ) {
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     2                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)           
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

F2e  }
                 main()                                             
  scores (obj01)
   words (obj05)
         ()
    item (obj08)
    this (obj05)
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size             (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

14   for( int i = 0; i < words.size; i++ )
                 main()                                             
  scores (obj01)
   words (obj05)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

15       System.out.print( words.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
   words (obj05)
       i    0   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

F3e  }
                 main()                                             
  scores (obj01)
   words (obj05)
       i    0   
         ()
   index    0   
    this (obj05)
return값
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

apple 

14   for( int i = 0; i < words.size; i++ )
                 main()                                             
  scores (obj01)
   words (obj05)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

15       System.out.print( words.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
   words (obj05)
       i    1   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

F3e  }
                 main()                                             
  scores (obj01)
   words (obj05)
       i    1   
         ()
   index    1   
    this (obj05)
return값
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

banana 

14   for( int i = 0; i < words.size; i++ )
                 main()                                             
  scores (obj01)
   words (obj05)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

15       System.out.print( words.get( i ) + " "  );

F3b  public T get( int index ) {
                 main()                                             
  scores (obj01)
   words (obj05)
       i    2   
         ()
   index
    this
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

F3e  }
                 main()                                             
  scores (obj01)
   words (obj05)
       i    2   
         ()
   index    2   
    this (obj05)
return값
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

carrot 

14   for( int i = 0; i < words.size; i++ )
                 main()                                             
  scores (obj01)
   words (obj05)
       i
  size     3                 (obj01)
  list    [0]         [1]         [2]   
        (obj02)   (obj03)   (obj04) 
        (obj02)     (obj03)     (obj04) 
          86         89         90   
  size     3                 (obj05)
  list    [0]         [1]         [2]   
        (obj06)   (obj07)   (obj08) 
        (obj06)     (obj07)     (obj08) 
        'apple'  'banana'   'carrot'

16  }


프로그램 코드

		
	public class GenericListMain {
1		public static void main( String[] args ) { 	
2			GenericList<Integer> scores = 
3			                              new GenericList<Integer>( 3 );
4			scores.add( 86 );
5			scores.add( 89 );
6			scores.add( 90 );
7			for( int i = 0; i < scores.size; i++ )
8			    System.out.print( scores.get( i ) + " "  );
			System.out.println();
	
9			GenericList<String> words = 
10			                            new GenericList<String>( 3 );	
11			words.add( "apple" );
12			words.add( "banana" );
13			words.add( "carrot" );
14			for( int i = 0; i < words.size; i++ )
15			    System.out.print( words.get( i ) + " "  );
	
16		}
	}
	
	public class GenericList<T> {
		private Object[] list;
		protected int size; 
		
F1b		public GenericList( int capacity ) {
			size = 0; 
F11			list = new Object[capacity];
F1e		}
		
F2b		public void add( T item ) {
F21			list[size++] = item;
F2e		}
		
F3b		public T get( int index ) {
F31			return (T)list[index];
F3e		}
	}