当前位置:首页 » 编程语言 » java组合

java组合

发布时间: 2022-01-10 06:45:56

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组合排列的实现

importjava.util.Arrays;
importjava.util.LinkedList;

publicclassRecursionNArray
{
privatestaticLinkedList<char[]>recursionSub(LinkedList<char[]>list,intcount,char[][]array,intind,
intstart,int...indexs)
{
start++;
if(start>count-1)
{
returnnull;
}
if(start==0)
{
indexs=newint[array.length];
}
for(indexs[start]=0;indexs[start]<array[start].length;indexs[start]++)
{
recursionSub(list,count,array,0,start,indexs);
if(start==count-1)
{
char[]temp=newchar[count];
for(inti=count-1;i>=0;i--)
{
temp[start-i]=array[start-i][indexs[start-i]];
}
list.add(temp);
}
}
returnlist;
}

publicstaticvoidmain(String[]args)
{
char[]a={'中','国','有','个','人'};
char[]b={'中','国','有','个','人'};
char[]c={'中','国','有','个','人'};
char[]d={'中','国','有','个','人'};
char[][]temp={a,b,c,d};

LinkedList<char[]>list=newLinkedList<char[]>();
recursionSub(list,temp.length,temp,0,-1);
for(inti=0;i<list.size();i++)
{
System.out.println(Arrays.toString(list.get(i)).replaceAll("[\[\]\,\s]",""));
}
}
}

Ⅲ 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 所有组合

public static void main(String[] args) {
String s="123";
char[] ss= s.toCharArray();
StringBuffer set= new StringBuffer();
for(int i=0;i<6;i++){//6是所有组合总数,也就是ss.length 值的阶乘
set.delete(0,set.length());
for(int j=0;j<ss.length;j++){
set.append(ss[(i+j)%ss.length]);
}
System.out.println(set.toString());
}
}

Ⅳ java组合问题

设计几个数组,几个计数器,接收A打头的进第一个数组,比如A1,A2...AN,然后N用计数器N1接收,B打头进第二个数组(原理跟A一样),然后多重循环就能出来.我是这样想的,不知道行不行

Ⅵ java实现数组的所有组合

最简单的办法是三层循环

Ⅶ java实现排列组合输出

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

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

importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.HashSet;
importjava.util.List;
importjava.util.Set;
publicclassTestQiuhe{
//集合a{1,2,3,5,7,10},输出不多于4个元素(不重复)的加和为22的组合。
publicstaticvoidmain(String[]args){
int[]nums={1,2,3,5,7,10};
intl=nums.length;
List<int[]>results=newArrayList<int[]>();
for(inti1=0;i1<l;i1++){
for(inti2=0;i2<l;i2++){
if(nums[i1]==22){
results.add(newint[]{nums[i1]});
}
if(i2!=i1){
if(nums[i1]+nums[i2]==22){
results.add(newint[]{nums[i1],nums[i2]});
}
for(inti3=0;i3<l;i3++){
if(i3!=i1&&i3!=i2){
if(nums[i1]+nums[i2]+nums[i3]==22){
results.add(newint[]{nums[i1],nums[i2],nums[i3]});
}
for(inti4=0;i4<l;i4++){
if(i4!=i1&&i4!=i2&&i4!=i3){
if(nums[i1]+nums[i2]+nums[i3]+nums[i4]==22){
results.add(newint[]{nums[i1],nums[i2],nums[i3],nums[i4]});
}
}
}
}
}
}
}
}
//去重
Set<String>reSet=newHashSet<>();
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中什么叫组合

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

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

热点内容
最近上传视频 发布:2024-12-25 21:05:39 浏览:393
php招聘源码 发布:2024-12-25 21:05:38 浏览:988
c语言输入数组赋值 发布:2024-12-25 21:01:43 浏览:652
22款奔驰e买哪个配置 发布:2024-12-25 20:54:08 浏览:737
金铲铲之战怎么看之前的服务器 发布:2024-12-25 20:52:36 浏览:448
unix环境高级编程英文版 发布:2024-12-25 20:50:35 浏览:291
我的世界电脑版服务器如何改实验模式 发布:2024-12-25 20:41:57 浏览:129
数据库删过程 发布:2024-12-25 20:39:38 浏览:447
创建sql存储过程 发布:2024-12-25 20:29:14 浏览:531
python目录存在 发布:2024-12-25 20:18:51 浏览:672