java日常学习:数组小练习

#java代码段


##数组常用小工具
/*
数组常用工具类(Arrays);
String toString(boolean[] a)返回指定数组内容的字符串表示形式
sort(数组) 排序
binarySearch()二分法 返回的是元素在数组的索引值,如果不存在返回负数表示,且是比它第一个数大的加一;

*/

import java.util.*;
class demo1 {
	public static void main(String[] args) {
		int [] arr={1,23,54,3,5,89,16,75,26,25};
		Arrays.sort(arr);    //排序;
		int index = Arrays.binarySearch(arr,6);    //查找元素;
		System.out.println("数组中的元素是:"+Arrays.toString(arr));
		System.out.println("索引值是:"+index);
	}
}

##数组去除零元素并且将剩下的元素储存到新数组,要求不能浪费新数组长度
/*
需求:将数组中零元素剔除并且将剩余元素储存到新的数组中,不能浪费新数组的位置;
/
import java.util.
;
class demo2 {
public static void main(String[] args) {
int[] arr={0,45,2,8,0,9,7,3,0,9};
int[] newArr = clearZero(arr);
System.out.print(“新数组元素是:”+Arrays.toString(newArr));
}

	public static int[] clearZero(int[] oldArr)
	{	//先计算出0的个数;
		int count =0;
		for (int i=0;i<oldArr.length ;i++ ){
			if (oldArr[i]==0){
				count++;
			}
		}
		//新数组长度;
		int[]  newArr = new int[oldArr.length-count];
		//定义一个从零开始自增数当储存一个数后;
		int index=0;
		//存储剩余元素;
		for (int i=0;i<oldArr.length ;i++ ){
			if (oldArr[i]!=0){
				newArr[index++]=oldArr[i];
			}
		}
		return newArr;
	}
}

##消除数组中的重复数组,并且将剩余元素放到新的数组中,要求不浪费数组
/*
需求:消除数组中的重复数组,并且将剩余元素放到新的数组中,要求不浪费数组;
/
import java.util.
;
class demo3 {
public static void main(String[] args) {
int[] arr={1,1,3,6,8,2,6,74,8,3,6,4};
int[] newArr=clearRepeat(arr);
System.out.println(“新的数组是:”+ Arrays.toString(newArr));
}

	public static int[] clearRepeat(int[] oldArr){
		//求出重复元素的个数;
		int count=0;    //count变量 是用于记录重复元素的个数;
		for (int i=0;i<oldArr.length-1 ;i++ ){
			for (int j=1+i;j<oldArr.length ;j++ ){
				if (oldArr[i]==oldArr[j]){
					count++;
					break ;
				}
			}
		}


		//创建一个新的数组;
		int[] newArr=new int[oldArr.length-count];
		int index=0;    //新数组使用的索引值;

		for (int i=0;i<oldArr.length ;i++ ){
			boolean flag=false;		//该标识是用于标识取出的元素是否存在新数组中;
			int temp=oldArr[i];		//从旧数组中取出遍历的元素;
			//遍历新的数组是否存在该数据;
			for (int j=0;j<newArr.length ;j++ ){
				if (newArr[j]==temp){
					flag=true;
					break ;
				}
			}

			if (flag==false){  //注意**********这里是双等于号;
				newArr[index++]=temp;
			}

		}
		return newArr;
	}
}

##有关班级及格率的数组合格综合练习
/*
用户输入班级的人数,然后依次输入每个同学的成绩.
输入完毕之后,如果及格率没有达到60%, 就为每一位没有及格的成绩加2分,直到及格率达到60%为止。
/
import java.util.
;
class demo4 {
public static void main(String[] args){
int[] arr = myData();
double data=jiGe(arr); //得到本班的及格率;
while(true){
if (data<0.6)
{
for (int i=0;i<arr.length ;i++ ){
if (arr[i]<60){
arr[i]=arr[i]+2;
}
data = jiGe(arr); //重新计算及格率;
}
}else{
break ;
}
}
System.out.println(“数组元素”+Arrays.toString(arr));
System.out.println(“及格率是:”+data*100+"%");
}

	//计算及格率;
	public static double jiGe(int[] arr)
	{	
		double count = 0;    //定义一个变量记录及格的人数;
		for (int i=0;i<arr.length ;i++ ){
			if (arr[i]>=60){
				count++;
			}
		}
		double data=count/arr.length;    // data记录及格率;
		return data;
	}
	
	
	//首先,要返回自己定义的数组;
	public static int[] myData(){
		System.out.println("请输入班级的人数:");
		Scanner scanner=new Scanner(System.in);
		int count=scanner.nextInt();
		int[] arr =new int[count];    //创建一个数组对象;
		//录入成绩;
		for (int i=0;i<count ;i++ ){
			System.out.println("请输入第"+(i+1)+"位同学的成绩:");
			arr[i] = scanner.nextInt();
		}
		return arr;
	}
}

用于平时自己复习回顾,如有错误,欢迎指正

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值