189 8069 5689

java组合类代码实现 java代码组成

用java代码实现组合模式

重载wolf1的构造函数使其接受一个animal的实例,是为了外界代码传入animal实例,方便调用。如果你直接new一个animal实例的话,在实际开发中一般都不现实,因为这样就写死了,如果animal实例类中还有很多数据字段(比如从数据库中加载)的话

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站建设、成都做网站、网站策划、网页设计、申请域名虚拟主机、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。

java实现排列组合输出

完成了一种实现,发给你参考下。

不过感觉应该还有更好的办法,有时间我会继续研究下.

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class TestQiuhe {

//集合a{1,2,3,5,7,10},输出不多于4个元素(不重复)的加和为22的组合。

public static void main(String[] args) {

int[] nums={1,2,3,5,7,10};

int l = nums.length;

Listint[] results=new ArrayListint[]();

for(int i1=0;i1l;i1++){

for(int i2=0;i2l;i2++){

if(nums[i1]==22){

results.add(new int[]{nums[i1]});

}

if(i2!=i1){

if(nums[i1]+nums[i2]==22){

results.add(new int[]{nums[i1],nums[i2]});

}

for(int i3=0;i3l;i3++){

if(i3!=i1  i3!=i2){

if(nums[i1]+nums[i2]+nums[i3]==22){

results.add(new int[]{nums[i1],nums[i2],nums[i3]});

}

for(int i4=0;i4l;i4++){

if(i4!=i1  i4!= i2  i4!=i3){

if(nums[i1]+nums[i2]+nums[i3]+nums[i4]==22){

results.add(new int[]{nums[i1],nums[i2],nums[i3],nums[i4]});

}

}

}

}

}

}

}

}

//去重

SetString reSet=new HashSet();

for(int[] r:results){

Arrays.sort(r);

reSet.add(Arrays.toString(r));

}

System.out.println("一共得到结果集:"+reSet.size());

System.out.println(reSet);

}

}

运行结果:

一共得到结果集:2

[[5, 7, 10], [2, 3, 7, 10]]

求java实现String list[] = { "1", "2", "3" }; 的排列组合代码

楼上的代码好复杂...其实几个循环就可以了,用不着那么多if判断

import java.util.ArrayList;

public final class SpecialStringSorter {

public static String[] sort(String[] list){

ArrayListString outbuilder=new ArrayListString();

if(list.length2) throw new RuntimeException();//如果list长度小于2会抛出运行时异常(你想换掉就换掉,比如说返回本身)

for(int a=2;a=list.length;a++){ //这一层循环是迭代输出括号里的元素数(a代表输出中的[]里的元素数),不断增加

for(int b=0;b=list.length-a;b++){ //这一层循环是迭代输出括号里的开头数

for(int c=b+1;c=list.length-a+1;c++){//这一层循环是第二个数

StringBuilder sb=new StringBuilder("[");

sb.append(list[b]);

sb.append(","+list[c]);

for(int d=1;da-1;d++){ //这一层循环是一个[]内容的生成循环

sb.append(","+list[c+d]);

}

sb.append("]");

outbuilder.add(sb.toString());

}

}

}

String[] result=new String[outbuilder.size()];

int i=0;

for(Object resultBuilder:outbuilder){

result[i]=(String)resultBuilder;

i++;

}

return result;

}

public static void main(String[] args){

String[] test={

"1","2","3","4"

};

String[] sortResult=sort(test);

for(String out:sortResult){

System.out.print(out);

}

}

}

输入任意字符序列,输出所有两位数的排列组合JAVA代码?

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// 创建Scanner对象,用于获取用户输入

Scanner scanner = new Scanner(System.in);

System.out.print("请输入任意字符序列:");

// 获取用户输入的字符序列

String str = scanner.nextLine();

// 循环遍历字符序列中的每个字符

for (int i = 0; i str.length(); i++) {

// 获取字符序列中的第i个字符

char c1 = str.charAt(i);

// 循环遍历字符序列中的每个字符

for (int j = 0; j str.length(); j++) {

// 获取字符序列中的第j个字符

char c2 = str.charAt(j);

// 如果第i个字符不等于第j个字符,则输出它们的排列

if (i != j) {

System.out.println(c1 + "" + c2);

}

}

}

}

}

java实现排列组合

char[] a={'1','2','3','4'};

String b= "";

String c= "";

for (int i = 0; i a.length-1; i++) {

b="["+a[i]+","+a[i+1]+"]";

c+=b;

}

System.out.println(c);


分享标题:java组合类代码实现 java代码组成
分享网址:http://jkwzsj.com/article/docpggh.html

其他资讯