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--;
}
}
}
}