java实现几个字母的所有组合

1楼扯淡,二楼网上复制的,不完全符合要求,3楼的有些问题,不能输出所有的不是贬低各位
这是我在2楼基础上改的
package main;

import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) {
String s="abcdaaa";
ger(split(s,true));

}
/**
*
* @param target
* @param isDeleteRepeat 是否去掉重复的字母例如abcda去重则为abcd不去重则为abcda即2个a当做不同的字母看
* @return
*/
public static List<String> split(String target,boolean isDeleteRepeat){
List<String> list=new ArrayList<String>();
for(int i=0;i<target.length();i++){

if(!(isDeleteRepeat&&list.contains(String.valueOf(target.charAt(i))))){
list.add(String.valueOf(target.charAt(i)));}
}
return list;
}
public static List<String> ger(List<String> string){
List<String> list=new ArrayList<String>();
for(int i=1;i<=string.size();i++){
sort(string,new ArrayList<String>(),i);
}
return list;
}
private static void sort(List datas, List target,int num) {
if (target.size() == num) {
for (Object obj : target)
System.out.print(obj);
System.out.println();
return;
}
for (int i = 0; i < datas.size(); i++) {
List newDatas = new ArrayList(datas);
List newTarget = new ArrayList(target);
newTarget.add(newDatas.get(i));
newDatas.remove(i);
sort(newDatas, newTarget,num);
}
}

}

⑵ java实现排列组合

2位数排来列组合源的话,应该不止[1,2],[2,3],[3,4]吧?

代码在下面:

privatevoidpailie(char[]a){
for(inti=0;i<a.length-1;i++){
for(intj=i+1;j<a.length;j++){
System.out.print("["+a[i]+","+a[j]+"]");
}
}
}

⑶ JAVA组合和继承的区别

private A a;//在类B中定义一个成员变量a,这个成员变量是类A的一个对象,private修饰符将回这个变量定义答为私有类型,即只能在类B内直接使用。如果你要在类B中使用类A中的方法,可以直接用a.method1();
例如:
public class B{
private A a;
B(){
a.method1();
}
}
如果你要在类B的定义体外使用a则需要在类B中再定义一个public或不作修饰的一个方法,在这个方法体里对a进行操作,例如:
public class B{
private A a;
public A m2(){
return a;
}
}

⑷ java找出数字的所有组合

package com.zy.test2;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class TestDi {
public static void main(String[] args) {
String s[] = {"1", "2", "3"};
List<String> list = new ArrayList<String>();
listAll(Arrays.asList(s), "", list);
Collections.sort(list);
for (String str : list)
{
System.out.println(str);
}
}

public static void listAll(List<?> candidata, String prefix, List<String> list)
{
if (prefix != null && prefix != "")
{
list.add(prefix);
}
for (int i = 0; i < candidata.size(); i++)
{
List<?> temp = new LinkedList<>(candidata);
listAll(temp, prefix + temp.remove(i), list);
}
}
}

⑸ java实现数组的所有组合

细节上需要改进。 java.util.*;
public class Map {
Vector<int[]> v = new Vector<int[]>();
Vector<Integer> vv = new Vector<Integer>(); Map() {
int[] array = { 1, 2, 3, 4, 5 };
Scanner s = new Scanner(System.in);
int x = s.nextInt();
pro(array, 0, x);
for(int i=0;i<v.size();i++){
int[] r=v.get(i);
for(int j=0;j<r.length;j++){
System.out.print(""+r[j]+",");
}
System.out.println();
}
} public void pro(int[] a, int start, int n) {
if (n == 0) {
int[] r = new int[vv.size()];
for (int i = 0; i < r.length; i++) {
r[i] = vv.get(i);
}
v.add(r);
return;
}
if (start >= a.length) {
return;
}
for (int i = start; i < a.length; i++) {
vv.add(a[i]);
pro(a, i + 1, n - 1);
vv.remove(vv.size()-1);
}
} public static void main(String arg[]) {
new Map();
}
}

⑹ java的组合问题

什么样的数字,怎么组合,你得说清楚啊

⑺ java中什么叫组合

组合就是 A类的对象是B类的成员变量。相当于 A类是B类对象的一个属性!
组合和继承都很常见的!

⑻ java、获得数组的全部组合

import java.util.*;
public class eee{
public static void main(String[] args)
{
int[] a={0,1,2,3,4,5,6,7,8,9};
for(int n=1;n<=a.length;n++)
{
int[] b=new int[n];//存放组合结果的数组
int num=getNumber(a.length,n)/getNumber(n,n);
System.out.println("当取"+n+"个数时有"+num+"个可能.结果为:");
submit(a,0,0,n,b);
System.out.println("");
}
}
public static int getNumber(int length,int n)
{
int result;
if(n==1)
{
result=length;
}
else
{
result=length*getNumber(length-1,--n);
}
return result;
}
public static void submit(int[] a,int c,int i,int n,int[] b)
{//a原始数组,c循环的开始值,数组b索引,n控制递归的次数,b存放结果的数组
for(int j=c;j<a.length-(n-1);j++)
{
b[i]=a[j];
if(n==1)
{
System.out.println(Arrays.toString(b));
}
else
{
n--;
i++;
submit(a,j+1,i,n,b);//递归调用
n++;//还原n,i的值
i--;
}
}
}
}