知识快搜
案例一
排序:对10个整数进行按照从小到大的顺序排序
思路分析:用冒泡排序的方法进行排序
代码展示:
public static void main(String[] args) {
//对10个整数进行按照从小到大的顺序排序
// 定义10个整数的数组
int[] nums={42,35,64,78,39,26,89,21,97,17};
for (int i = 0; i < nums.length-1; i++) {
for (int j = 0; j < nums.length-1-i; j++) {
if(nums[j]>nums[j+1]){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
System.out.println("按照从小到大的顺序排序:");
System.out.print("int[] nums={");
for (int i = 0; i < nums.length; i++) {
if(i==nums.length-1){
System.out.print(nums[i]);
}else{
System.out.print(nums[i]+",");
}
}
System.out.println("};");
}
运行效果:
案例二
插入数据:有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
思路分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。
代码展示:
public static void main(String[] args) {
//创建Scanner类对象
Scanner sc=new Scanner(System.in);
int[] scores={99,85,83,63,60};
//1)声明一个长度比原来数组长度大1的数组
int[] newScores=new int[scores.length+1];
//2)将原来数组里元素按照顺序存入到新的数组中
for (int i = 0; i < scores.length; i++) {
newScores[i]=scores[i];
}
System.out.println("插入学生成绩前的数组:");
for (int i : newScores) {
System.out.print(i+" ");
}
System.out.println();
//3)使用Scanner类获取你要增加的学员成绩
System.out.println("请输入你要增加的学员成绩:");
int insert =sc.nextInt();
//设置插入的成绩插入的位置,默认将其插入在数组最后位置
int index=newScores.length-1;
//4)通过循环比较获取增加的学员成绩的插入位置
for (int i = 0; i < newScores.length; i++) {
if (insert>newScores[i]) {
index=i;
break;
}
}
//5)从插入元素插入位置开始及之后的元素依次往后移动一位(从最后一个元素开始,倒着移动)
for (int i = newScores.length-1; i < index; i--) {
newScores[i]=newScores[i-1];
}
//6)将要插入的成绩存储到插入位置
newScores[index]=insert;
//输出新数组所有元素
System.out.println("插入学生成绩后的数组:");
for (int i : newScores) {
System.out.print(i+" ");
}
}
运行效果:
案例三
逆序:将一个数组逆序输出。
思路分析:定义一个新的数组,长度和原数组长度相同
代码展示:
public static void main(String[] args) {
int[] nums={24,53,45,67,38,18,86,46,75};
System.out.print("原始数组为:int[] nums={");
for (int i = 0; i < nums.length; i++) {
if (i==nums.length-1) {
System.out.print(nums[i]);
}
else{
System.out.print(nums[i]+",");
}
}
System.out.println("};");
//定义一个新的数组,个数和nums数组个数相同
int[] newNums=new int[nums.length];
System.out.println("数组逆序后:int[] newNums={");
for (int i = 0; i < nums.length; i++) {
newNums[i]=nums[nums.length-i-1];
if (i==newNums.length-1) {
System.out.print(newNums[i]);
}
else{
System.out.print(newNums[i]+",");
}
}
System.out.println("};");
}
运行效果:
案例四
元素交换:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
思路分析:把最大和最小取出来,剩下的数据放在一个数组里,然后定义一个新数组,和原数组长度一样,新数组的第一个和最后一个是最大值和最小值,直接放进去,刚才的那个剩下的数据按照顺序放在新数组的中间
代码展示:
public static void main(String[] args) {
int[] nums={24,53,45,67,38,18,86,46,75};
//打印输出原始数组
System.out.print("原始数组为:int[] nums={");
for (int i = 0; i < nums.length; i++) {
if (i==nums.length-1) {
System.out.print(nums[i]);
}
else{
System.out.print(nums[i]+",");
}
}
System.out.println("};");
//获取最大数
int max=nums[0];
for (int i = 1; i < nums.length; i++) {
if(nums[i]>max){
max=nums[i];
}
}
//获取最小数
int min=nums[nums.length-1];
for (int i = nums.length-1; i > 0; i--) {
if(nums[i]<min){
min=nums[i];
}
}
//定义一个排除最大数和最小数的数组
int j = 0;
int[] numOthers=new int[nums.length-1];
for (int i = 0; i < nums.length; i++) {
if(nums[i]!=max&&nums[i]!=min){
numOthers[j]=nums[i];
j++;
}
}
//打印输出交换后的数组
//定义一个新的数组,个数和nums数组个数相同
int[] newNums=new int[nums.length];
System.out.print("交换后的数组为:int[] newNums={");
for (int i = 0; i < nums.length; i++) {
if (i==nums.length-1) {
newNums[i]=min;
System.out.print(newNums[i]);
}else if(i==0){
newNums[i]=max;
System.out.print(newNums[i]+",");
}
else{
newNums[i]=numOthers[i-1];
System.out.print(newNums[i]+",");
}
}
System.out.println("};");
}
运行效果:
案例五
移动:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
思路分析:前面各数后移m个位置,最后m个数就变成前面m个数,说明是将后面m个数放在数组的最前面
* 例如:原数组{24,53,45,67,38,18,86,46,75}
* 将nums数组中的后三位放在前面,在新的数组则为:
* {86,46,75,24,53,45,67,38,18}
代码展示:
public static void main(String[] args) {
//有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
//定义一个Scanner键盘输入对象
Scanner sc=new Scanner(System.in);
//定义一个数组
int[] nums={24,53,45,67,38,18,86,46,75};
//打印输出原始数组
System.out.print("原始数组为:int[] nums={");
for (int i = 0; i < nums.length; i++) {
if (i==nums.length-1) {
System.out.print(nums[i]);
}
else{
System.out.print(nums[i]+",");
}
}
System.out.println("};");
System.out.println("请输入数组后面的几个数放在最前面:");
int court=sc.nextInt();
//定义一个新的数组
int[] newNums=new int[nums.length];
for (int i = 0; i < newNums.length; i++) {
if (i<court) {
newNums[i]=nums[nums.length-court+i];
}
else
{
newNums[i]=nums[i-court];
}
}
//打印输出新的数组
System.out.print("新的数组为:int[] newNums={");
for (int i = 0; i < newNums.length; i++) {
if (i==newNums.length-1) {
System.out.print(newNums[i]);
}
else{
System.out.print(newNums[i]+",");
}
}
System.out.println("};");
}
运行效果:
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。