Return to Snippet

Revision: 57210
at May 22, 2012 02:54 by edwarddr


Initial Code
import java.util.ArrayList;

class SubsetGenerator
{
	
	public SubsetGenerator()
	{
		
	}
	
	// starting index assumed to be 0
	public void generate(char[] input, int index, ArrayList<String> holder)
	{
		if (index < 0)
			return;
		
		if (index >= input.length)
		{
			if (holder != null)
			{
				printOut(holder);
			}
			return;
		}
		
		ArrayList<String> branchOut = (ArrayList<String>) holder.clone();
		branchOut.add(String.valueOf(input[index]));
		generate(input, index+1, holder);
		generate(input, index+1, branchOut);
	}
	
	private void printOut(ArrayList<String> holder)
	{
		if (holder.size() == 0)
		{
			System.out.println("This subset contains: Empty Set!");
			return;
		}
		System.out.print("This subset contains: ");
		for (int i = 0; i < holder.size(); i++)
		{
			System.out.print(holder.get(i) + " ");
		}
		System.out.println();
	}
	
	public static void main(String args[])
	{
		char[] sample = {'a','b','c','d'};
		SubsetGenerator tester = new SubsetGenerator();
		tester.generate(sample, 0, new ArrayList<String>());
	}
}

Initial URL


Initial Description
A short java sample of generating all the possible subset given a list.

Initial Title
SubsetGenerator

Initial Tags


Initial Language
Java