赞
踩
// 创建数组的格式 //常用格式1:创建数组的同时指定数组中的内容 //数据类型[] 数组名称 = {数据1,数据2...} int [] ages = {10,11,12,13,14}; //常用格式2:创建数组并指定长度,不指定数组内容 //数据类型[] 数组名你 = new 数据类型[数组长度]; //数组长度通过int数据指定 //默认值为0 int [] ages2 = new int[10]; //数组不常用的创建方式 //1.创建数组,不初始化 //格式:数据类型[] 数组名 int[] nums; nums = new int[10]; //nums = {1,2,3,4};不能使用,只能在声明中使用 //2.创建数组并指定数组中的内容,不如直接指定 //格式:数据类型[] 数组名称 = new 数据类型[]{内容1,内容2...} int[] ages = new int[] {11,12,13,14};
//1.数组下标越界问题:
int[] nums = {10,11,12,13,14};
System.out.println(nums[5]);
//2.空指针问题,只有名,没有值,被引用内存为空
int[] nums;
//解决方法1: int[] nums = null;
//解决方法2: static int[] nums;默认值是null
System.out.println(nums);
//如何获取数组的长度:数组名称.length
for(int index=0;index<ages.length;index++) {
System.out.println(ages[index]);
}
int[] nums = {10,30,40,33,22,20,11,20};
//1.创建一个变量用于存储遍历数组中发现的最大值
int n = nums[0];
//2.循环取出数组中的每一个内容,从1开始
for(int i=1;i<nums.length;i++) {
n = n>nums[i]?n:nums[i];
}
System.out.println(n);
int[] nums = {20,15,18,13,30,60}; int temp; //外层循环控制轮数 //次数为轮数-1 for(int i=0;i<nums.length;i++) { //第n轮(n轮)比较次数length-n-1 for(int j=0;j<nums.length-i-1;j++) { //比较后交换 if(nums[j]>nums[j+1]) { temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } } for(int i=0; i<nums.length;i++) { System.out.println(nums[i]); }
二分查找(Binary Search),他是一种效率较高的查找方法,但是必须采用顺序存储结构有序排列
假设升序排列,将数组中间位置的数据与查找数据比较,若两者相等,则查找成功,否则利用中间位置将数组分为前后两个子数组,如果中间位置数据大于查找数据,则进一步查找前子数组,否则查找后子数组。重复以上过程
流程:
int[] nums = {10,20,30,40,50,60,70,80,90}; //要查找的数据 int num = 30; //最小下标 int minIndex = 0; //最大下标 int maxIndex = nums.length-1; //中间下标 int centerIndex = (minIndex+maxIndex)/2; while(true) { if(nums[centerIndex]>num) { maxIndex = centerIndex-1; }else if(nums[centerIndex]<num) { minIndex = centerIndex+1; }else { //找到了 数据位置centerIndex break; } if(minIndex>maxIndex) { centerIndex = -1; break; } //边界发生变化,需要更新中间下标 centerIndex = (minIndex+maxIndex)/2; }
//创建二维数组
int[][] nums = new int[10][];
//赋值
nums[0] = new int[]{1,2,3};
//调用
System.out.println(nums[0][2]);
//找队长 int [] members = new int[10]; //成员报数 int number = 0; //被排除人数 int outNumber = 0; //成员编号数组的下标 int memberIndex = 0; //备选队长位置 int tempLeader = 0; while(true) { //跳过已经被排除的成员 while(members[memberIndex]==3) { //首尾相连遍历数组 memberIndex = (memberIndex+1)%members.length; } //以3为周期,成员报数 number++; members[memberIndex] = number; //报数为3,排除该成员,报数清零 if(number == 3) { outNumber++; number = 0; }else { //没有被排除的成员为备选队长 tempLeader = memberIndex+1; } memberIndex = (memberIndex+1)%members.length; //当队伍中只剩一名成员,选为队长,跳出循环 if(outNumber == members.length-1) { break; } } //打印队伍状态 for(int i=0;i<members.length; i++) { System.out.print(members[i]+" "); } System.out.println(); //打印结果 System.out.println("队长为第"+tempLeader+"名成员"); }
//method1 import java.lang.Math; ... //生成[0,1)之间的double,通过乘以最大值并强制类型转换,返回[0,max)之间的随机数 int d = Math.random(); i = (int)(d*max); //输出100~1000之间的随机数 int min = 100; int max = 1000; int num = min + (int)(Math.random()*(max - min +1)); //method2 import java.util.Random; ... Random rand = new Random(); //随机生成[0,max) rand.nextInt(max); //输出[min,max)之间的随机数 num = rand.nextInt((max - min) + 1) + min; //method3 import java.util.concurrent.ThreadLocalRandom; //随机生成[min,max) // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = ThreadLocalRandom.current().nextInt(min, max);
参考网站
https://stackoverflow.com/questions/363681/how-do-i-generate-random-integers-within-a-specific-range-in-java
String myStr1 = "Hello";
String myStr2 = "Hello";
String myStr3 = "Another String";
System.out.println(myStr1.equals(myStr2)); // Returns true because they are equal
System.out.println(myStr1.equals(myStr3)); // false
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。