从java基础习题开始:
public class HelloWorld {
public static void main(String[] args) {//args==arguments:参数
System.out.println("Hello World!");
}
}
public class Perator {
public static void main(String[] args) {
int m=12;
int n=5;
int max=(m>n)?m:n;
System.out.println(max);
String maxStr00 = (m > n) ? "m大" : ((m == n) ? "m和n一样大" : "n大");
System.out.println(maxStr00);
}
}
public class Water {
public static void main(String[] args) {
wFunction00();
wFunction01();
}
private static void wFunction00() {
//输出100以内质数
boolean isFlag=true;
//获取当前时间距离1970-01-01 00:00:00的毫秒数
long s = System.currentTimeMillis();
for (int i = 2; i < 20; i++) {
for (int j = 2; j < Math.sqrt(i); j++) {//针对质数有效
if(i%j==0){
isFlag=false;
break;//仅对非质数的自然数有效
}
}
if (isFlag==true){
System.out.println(i);
}
isFlag=true;
}
long e = System.currentTimeMillis();
System.out.println("当前用时"+(s-e));
}
private static void wFunction01() {
//输出100以内质数
boolean isFlag=true;
//获取当前时间距离1970-01-01 00:00:00的毫秒数
long s = System.currentTimeMillis();
lable:for (int i = 2; i < 20; i++) {
for (int j = 2; j < Math.sqrt(i); j++) {//针对质数有效
if(i%j==0){
continue lable;
}
}
if (isFlag==true){
System.out.println(i);
}
isFlag=true;
}
long e = System.currentTimeMillis();
System.out.println("当前用时"+(s-e));
}
}
public class Arr {
public static void main(String[] args) {
int[][] yangHui=new int[10][];
for (int i = 0; i < yangHui.length; i++) {
yangHui[i]=new int[i+1];
yangHui[i][0]=yangHui[i][i]=1;
if(i>1){
for(int j=1;j
public class Array {
public static void main(String[] args) {
afunc00();
afunc01();
afunc02();
afunc03();
afunc04();
afunc05();
}
private static void afunc05() {
//冒泡排序
int[] arr=new int[]{4,2,6,1,7,9,7,11,0};
System.out.println("排序前:n");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"t");
}
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j <(arr.length-1-i); j++) {
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println("n排序后:n");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"t");
}
}
private static void afunc04() {
//查找
//线性查找
String[] arr=new String[]{"aa","bb","cc","dd","kk","vv","gg"};
String dest="kk";
boolean isFlag=true;
for (int i = 0; i < arr.length; i++) {
if(dest.equals(arr[i])){
System.out.println("找到了,位置为:"+i);
isFlag=false;
break;
}
}
if(isFlag){System.out.println("没有找到");}
//二分查找
//前提,所要查找的数组必须要有序。
int[] array1=new int[]{2,3,5,7,11,13,17,19};
int dest1= 19;
int head =0;//初始索引
int end = array1.length-1;//初始尾索引
boolean isFlag1=true;
while(head<=end){
int middle=(head+end)/2;
if(dest1==array1[middle]){
System.out.println("找到了,位置为:"+middle);
isFlag1=false;
break;
}else if(array1[middle]>dest1){
end=middle-1;
}else {
head=middle+1;
}
}
if(isFlag1){System.out.println("没有找到");}
}
private static void afunc03() {
//数组反转
String[] arr=new String[]{"aa","bb","cc","dd","kk","vv","gg"};
//法一
for (int i = 0; i < arr.length/2; i++) {
String temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
//法二
for (int i = 0,j=arr.length-1; i
public class ArraysTest {
public static void main(String[] args) {
//1.boolean equals(int[] a,int[] b);判断两个数组是否相等
int[] arr=new int[]{1,2,3,4};
int[] arr1=new int[]{1,3,10,5,2,4};
boolean isEquals = Arrays.equals(arr, arr1);
//判断机理:先比地址,再判断是否为空,再比长度,最后比元素
System.out.println(isEquals);//false原因:数组有顺序要求
//2.String toString(int[] a);输出数组信息
System.out.println(Arrays.toString(arr));
//Arrays.toString()实现机理是使用了StringBuilder,将数组中所有元素(包含,和[])取出拼接在StringBuilder中
//3.void fill(int[] a,int val);将指定的值填充到数组中
Arrays.fill(arr,10);
//实现原理:遍历赋值
System.out.println(Arrays.toString(arr));
//4.void sort(int[] a);对数组进行排序
Arrays.sort(arr1);//实现原理用快排
System.out.println(Arrays.toString(arr1));
//5.int binarySearch(int[] a,int key);
int[] arr2=new int[]{2,3,5,7,11,13,17,19};
int i = Arrays.binarySearch(arr2, 17);
if(i>=0){
System.out.println("元素所在位置:"+i);
}else {//只要出现小于0的数表示没有找到目标数值
System.out.println("没有找到");
}
}
}



