一个JAVA面试程序题

用1、2、2、3、4、5这六个数字,用java写一个main函数,
打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,
"3"与"5"不能相连。

[code]

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

public class GetAll {
List list=new ArrayList();
public GetAll(){
list.add("22");
}
public void AllOrder(String str){
List listlin=new ArrayList();
for(int i=0;i<list.size();i++){
String nstr=(String )list.get(i);
nstr=str+nstr;
String cmpstr=nstr;
listlin.add(nstr);
nstr=ChangeStr(nstr);
while(!cmpstr.equals(nstr)){
listlin.add(nstr);
nstr=ChangeStr(nstr);
}
}
list.clear();
list.addAll(listlin);
}

public void OutAll(){
//过虑
for(int j=0;j<list.size();j++){
String outstr=(String)list.get(j);
if((outstr.indexOf("3")+1==outstr.indexOf("5")) || (outstr.indexOf("3")-1==outstr.indexOf("5"))||(outstr.indexOf("4")==2))
continue;
System.out.println("-----------"+outstr);

}
}
public String ChangeStr(String str){
char arr[]=str.toCharArray();
char first=arr[0];
str=str.substring(1,str.length())+first;
return str;
}
public static void main(String args[]){
GetAll getall=new GetAll();
getall.AllOrder("1");
getall.AllOrder("3");
getall.AllOrder("4");
getall.AllOrder("5");
getall.OutAll();
}
}


[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最常见的Java面试大全的程序面试程序,很有影响力的哦!好好珍惜这个资料吧!有Java的常见面试的冒泡,常见的算法,继承,多态 1.抽象: 抽象就是忽略一个中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值