概述
今天看到了csdn 的热搜数据,大概分析了下java的一些热门查找,因为csdn的用户大都是一些在校学生,所以热门搜索的问题都是一些基础知识,今天稍微整理下热搜的一些问题,挑一些典型的问题进行解答,希望能对新入手的java新人以启示。OK,废话不多说,走起
希望各位看官能给点个赞,码字不易,整理不易,你的肯定是我写作的动力
1、java输入语句
public static void main(String[] args) {
// public final static InputStream in = null;
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
String i = scanner.next();
System.out.println(i);
}
}
System.in 是从连接控制台的输入流 InputStream
Scanner 是包装类,可以对InputStream 进行转换,在输入的时候转换为Int ,Boolean 等类型,省去手动转换的麻烦
2、java开根号
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
int i = scanner.nextInt();
System.out.println(Math.sqrt(i));
}
}
这个问题应该是初学者不太清楚Math 下面的都有哪些函数,Math下面包含了我们常用的max,min,ceil ,sqrt ,round等函数,在数学运算的时候如果不太清楚,可以打开api看一下,基本上都能满足你的需求。能用库里的就用库里的,别自己瞎造轮子,你造了别人不喜欢用。
3、java进制转换
进制的转换,这种需求太普遍了以至于jdk 直接内置了转换方法,常用的八进制,十六进制,二进制方法直接定义好了,任意进制的也留了进口
将其他进制的数字转换为十进制 Integer.parseInt("121",3)
,第一个参数是字符串,第二个参数是原来的进制。
public static void main(String[] args) {
int n= 16;
System.out.println(n + "的八进制是:" + Integer.toOctalString(n));
System.out.println(n + "的二进制是:" + Integer.toBinaryString(n));
System.out.println(n + "的十六进制是:" + Integer.toHexString(n));
System.out.println(n + "的3进制是:" + Integer.toString(n, 3));
// radix进制的字符串s转10进制 Integer.parseInt((String) s,(int) radix);
System.out.println(Integer.parseInt("121",3));
}
4、 java 随机整数
java中产生随机数的方法主要有三种
第一种:new Random(),Java自带的随机类,可以设置种子进行伪随机,保证每次执行的数据一样
第二种:Math.random() ,java封装之后的工具函数,最终也是调用的Random类
第三种:currentTimeMillis(),根据时间的随机性
public static void main(String[] args) {
double r1 = Math.random();
Random random2 = new Random();
int r2 = random2.nextInt();
Random random3 = new Random(1000);
int r3 = random3.nextInt();
long r4 = System.currentTimeMillis() % 100;
double r5 = Math.random();
}
详细的介绍:战斗要同步,又要有随机,怎么办?大佬告诉我这么做_香菜-CSDN博客
5、九九乘法表java
九九乘法表可能是我初学者的课堂作业,所以也是热搜的词,下面我给一个示例代码
public static void print9x9() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (i >= j) {
String oneItem = i + "*" + j + "=" + i * j + " ";
System.out.print(oneItem);
}
}
System.out.println();
}
}
注意点:
循环的上限是9,所以结束的是小于等于好
换行符要在外层循环打印
oneItem 代表一个乘法公式
6、回文数java
一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数。比如 121121,23322332都是回文数,13,456713,4567 不是回文数。
思路:先将数字转为字符串,然后一个字符一个字符进行比较,如果相等则是回文
public static void main(String[] args) {
System.out.println(isRevert(110));
}
public static boolean isRevert(int num){
String value=Integer.toString(num);
char array[]=value.toCharArray();
for (int i =0;i< value.length()/2;i++){
if (array[i]!= array[value.length() -i-1]){
return false;
}
}
return true;
}
注意点:
第一个位置要和最后一个位置 length-1 进行比较,所以所以是value.length() -i-1
如果在循环的过程中发现不匹配的字符串,则直接返回false
7、java二分查找
二分法检索(binary search)又称折半查找,二分查找的基本思想是设数组中的元素从小到大有序地存放在数组(array)中(注:二分法查找的关键,首先数组元素必须从小到大有序排列),
(1)首先将给定值 key 与数组中间位置上元素的关键码(key)比较,如果相等,则检索成功;
(2)否则,若 key 小,则在数组前半部分中继续进行二分法检索;
(3)若 key 大,则在数组后半部分中继续进行二分法检索。 这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。 二分法检索是一种效率较高的检索方法。
class BinarySearch{
/*
二分法查找
*/
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7,8};
int a = 0;
System.out.println(binarySearch(a,arr));
}
// 二分法查找
static int binarySearch(int a,int[] arr){
// 最大索引
int maxIndex = arr.length -1;
// 最小索引
int minIndex = 0;
// 中间索引
int halfIndex = minIndex+(maxIndex-minIndex)/2;
while (minIndex<=maxIndex){
// 找到时
if (arr[halfIndex]==a){
return halfIndex;
}else if (arr[halfIndex]<a){// 比a小时
minIndex = halfIndex + 1;
}else {// 比a大时
maxIndex = halfIndex - 1;
}
halfIndex = minIndex+(maxIndex-minIndex)/2;
}
return -1;
}
}
时间复杂度
1.最坏情况查找最后一个元素(或者第一个元素)Master定理T(n)=T(n/2)+O(1)所以T(n)=O(logn) 2.最好情况查找中间元素O(1)查找的元素即为中间元素(奇数长度数列的正中间,偶数长度数列的中间靠左的元素)
空间复杂度:
S(n)=n
总结:
大都是一些基础的问题,九层之台起于垒土,基础非常重要,如果不理解的话可以直接记住,或者留言交流,我会及时回复
最后
以上就是忧郁金毛为你收集整理的Java热搜问题大整理的全部内容,希望文章能够帮你解决Java热搜问题大整理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复