Posted on 2006-11-05 17:47 
苑 阅读(214) 
评论(0)  编辑  收藏  所属分类: 
java基础学习系列 
			 
			
		 
		
		
				
						import 
				
				java.io.Serializable;
				
				
						import 
				
				java.util.AbstractSet;
				
				
						import 
				
				java.util.ArrayList;
				
				
						import 
				
				java.util.Collection;
				
				
						import 
				
				java.util.Iterator;
				
				
						import 
				
				java.util.Set;
				
				
				
				
				
						public class 
				
				MainClass 
				{
				
				  
				
						public static 
				
				
						void 
				
				main
				(
				String args
				[]) {
				
				    
				Set map = 
				
						new 
				
				ArraySet
				()
				;
				
				    
				map.add
				(
				"V"
				)
				;
				
				    
				map.add
				(
				"M"
				)
				;
				
				    
				map.add
				(
				"N"
				)
				;
				
				    
				System.out.println
				(
				map
				)
				;
				
				  
				}
				
				}
				
				
				
				
				
						class 
				
				ArraySet 
				
						extends 
				
				AbstractSet 
				
						implements 
				
				Cloneable, Serializable 
				{
				
				
				
				
				  
				
						private 
				
				ArrayList list;
				
				
				
				
				  
				
						public 
				
				ArraySet
				() {
				
				    
				list = 
				
						new 
				
				ArrayList
				()
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				ArraySet
				(
				Collection col
				) {
				
				    
				list = 
				
						new 
				
				ArrayList
				()
				;
				
				
				
				
				    
				// No need to check for dups if col is a set
				
				    
				Iterator itor = col.iterator
				()
				;
				
				    
				
						if 
				
				(
				col 
				
						instanceof 
				
				Set
				) {
				
				      
				
						while 
				
				(
				itor.hasNext
				()) {
				
				        
				list.add
				(
				itor.next
				())
				;
				
				      
				}
				
				    
				} 
				
						else 
				
				{
				
				      
				
						while 
				
				(
				itor.hasNext
				()) {
				
				        
				add
				(
				itor.next
				())
				;
				
				      
				}
				
				    
				}
				
				  
				}
				
				
				
				
				  
				
						public 
				
				Iterator iterator
				() {
				
				    
				
						return 
				
				list.iterator
				()
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						int 
				
				size
				() {
				
				    
				
						return 
				
				list.size
				()
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						boolean 
				
				add
				(
				Object element
				) {
				
				    
				
						boolean 
				
				modified;
				
				    
				
						if 
				
				(
				modified = !list.contains
				(
				element
				)) {
				
				      
				list.add
				(
				element
				)
				;
				
				    
				}
				
				    
				
						return 
				
				modified;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						boolean 
				
				remove
				(
				Object element
				) {
				
				    
				
						return 
				
				list.remove
				(
				element
				)
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						boolean 
				
				isEmpty
				() {
				
				    
				
						return 
				
				list.isEmpty
				()
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						boolean 
				
				contains
				(
				Object element
				) {
				
				    
				
						return 
				
				list.contains
				(
				element
				)
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				
						void 
				
				clear
				() {
				
				    
				list.clear
				()
				;
				
				  
				}
				
				
				
				
				  
				
						public 
				
				Object clone
				() {
				
				    
				
						try 
				
				{
				
				      
				ArraySet newSet = 
				(
				ArraySet
				) 
				
						super
				
				.clone
				()
				;
				
				      
				newSet.list = 
				(
				ArrayList
				) 
				list.clone
				()
				;
				
				      
				
						return 
				
				newSet;
				
				    
				} 
				
						catch 
				
				(
				CloneNotSupportedException e
				) {
				
				      
				
						throw new 
				
				InternalError
				()
				;
				
				    
				}
				
				  
				}
				
				}