面试中常见的java问题的代码

本文提供了一系列实用的Java编程技巧,包括九九乘法表的打印、日期格式化、素数判断、整数阶乘计算及数组中元素的二分查找等方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.写一个方法,用一个for循环打印九九乘法表
Java code

/**
* 打印九九乘法口诀表
*/
public void nineNineMulitTable(){
for (int i = 1,j = 1; j <= 9; i++) {
System.out.print(i
+"*"+j+"="+i*j+" ");
if(i==j){
i
=0;
j
++;
System.out.println();
}
}
}



2.给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串
  Java code

/**
* 将某个日期以固定格式转化成字符串
*
@param date
*
@return str
*/
public String date2FormatStr(Date date)
{
SimpleDateFormat sdf
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str
= sdf.format(date);
return str;
}


3.写一个方法,能够判断任意一个整数是否素数
 
    /**
    * 判断任意一个整数是否素数
    * @param num
    * @return boolean
    */
    public boolean isPrimeNumber(int num)
    {
      for (int i = 2; i <= Math.sqrt(num); i++) {
          if(num%i==0)
          {
              return false;
          }
      }
      return true;
    }
4.写一个方法,输入任意一个整数,返回它的阶乘
Java code

/**
*获得任意一个整数的阶乘
*
@param n
*@returnn!
*/
public int factorial(int num)
{
//递归
if(num == 1)
{
return 1;
}
return num*factorial(num-1);
}


5.写一个方法,用二分查找法判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1
/**
*二分查找特定整数在整型数组中的位置(递归)
*
@param dataset
*
@param data
*
@param beginIndex
*
@param endIndex
*
@return index
*/
public int binarySearch(int[] dataset,int data,int beginIndex,int endIndex){
int midIndex = (beginIndex+endIndex)/2;
//如果查找的数要比开始索引的数据要小或者是比结束索引的书要大,或者开始查找的索引值大于结束的索引值返回-1没有查到
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
return -1;
}
if(data <dataset[midIndex]){
return binarySearch(dataset,data,beginIndex,midIndex-1);
}
else if(data>dataset[midIndex])
{
return binarySearch(dataset,data,midIndex+1,endIndex);
}
else {
return midIndex;
}
}

/**
*二分查找特定整数在整型数组中的位置(非递归)
*
@param dataset
*
@param data
*
@return index
*/
public int binarySearch(int[] dataset ,int data)
{
int beginIndex = 0;
int endIndex = dataset.length - 1;
int midIndex = -1;
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
return -1;
}
while(beginIndex <= endIndex) {
midIndex
= (beginIndex+endIndex)/2;
if(data <dataset[midIndex]) {
endIndex
= midIndex-1;
}
else if(data>dataset[midIndex]) {
beginIndex
= midIndex+1;
}
else {
return midIndex;
}
}
return -1;
}



其实二分法搜索太快了.一般我们都用这个.不过还有个比二分法还快的搜索.我自己命名为强二分搜索.那个适用于均匀
分部的数据类型.比如电话号码~~
以后粘贴上来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值