#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;
}
}
用于平时自己复习回顾,如有错误,欢迎指正