获取一个集合的所有子集

        /**
	 * 获取一个集合的所有子集
	 * @param set
	 * @return
	 */
	public ArrayList> getSubSet(ArrayList set){
		ArrayList> returnValue = new ArrayList<>();
		if(0 == set.size()){
			returnValue.add(new ArrayList());
			return returnValue;
		}
		
		int num = set.get(0);
		set.remove(0);
		ArrayList> subset = getSubSet(set);
		returnValue.addAll(subset);
		for(ArrayList x : subset)
		{
			//addAll是浅层拷贝
			ArrayList y = (ArrayList) x.clone();
			x.add(num);
			returnValue.add(x);
		}
		return returnValue;
	}

你可能感兴趣的:(跬步)