1.数组元素的赋值(杨辉三角,回形数等)
2.求数值型数组中元素的最大值,最小值,平均数,总和等;
3.数组的复制,反转,查找(线性查找,二分法查找)
4.数组元素的排序算法
eg1:使用简单数组
(1)创建两个int[]类型的数组array1和array2;
(2)使用{},把array1初始化为:2 3 5 4 7 11 13 17 19
(3)显示array1的内容
(4)赋值array2变量等于array1,修改array2中的偶索引元素使其为(array[0]=0,array[2]=2....)打印array1
package com.enlai.consst;
/*
* 练习4
* 使用简单数组
(1)创建两个int[]类型的数组array1和array2;
(2)使用{},把array1初始化为:2 3 5 4 7 11 13 17 19
(3)显示array1的内容
(4)赋值array2变量等于array1,修改array2中的偶索引元素使其为
(array[0]=0,array[2]=2....)打印array1
*/
public class helloeverday{
public static void main(String[] args)
{
int []array1,array2;
array1=new int []{2,3,5,4,7,11,13,17,19};
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+"\t");
}
System.out.println();
//赋值
array2=array1;
for(int i=0;i<array2.length;i++)
{
if(i%2==0)
array2[i]=i;
}
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+"\t");
}
}
}
运行结果:
运行结果:
2 3 5 4 7 11 13 17 19
0 3 2 4 4 11 6 17 8
思考:array1和array2是什么关系?
array2=array1,可以这么理解,将array1保存的数组的地址值赋给了array2,使得array1和array2地址值相同,都指向了堆空间的唯一数组实体
拓展:改:实现array2对array1数组的复制;
package com.enlai.consst;
/*
*改:实现array2对array1数组的复制;
*/
public class helloeverday{
public static void main(String[] args)
{
int []array1,array2;
array1=new int []{2,3,5,4,7,11,13,17,19};
System.out.print("array1:");
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+"\t");
}
System.out.println();
//实现array2对array1数组的复制(区别于数组变量的赋值:array2=array1)
array2=new int [array1.length];
for(int i=0;i<array2.length;i++)
{
array2[i]=array1[i];
}
for(int i=0;i<array2.length;i++)
{
if(i%2==0)
array2[i]=i;
}
System.out.print("array1:");
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+"\t");
}
System.out.println();
System.out.print("array2:");
for(int i=0;i<array2.length;i++)
{
System.out.print(array2[i]+"\t");
}
}
}
运行结果:
array1:2 3 5 4 7 11 13 17 19
array1:2 3 5 4 7 11 13 17 19
array2:0 3 2 4 4 11 6 17 8
数组的反转
package com.enlai.consst;
/*
*数组的反转
*/
public class helloeverday{
public static void main(String[] args)
{
String []array1,array2;
array1=new String[]{"aa","ss","dd","jj","kk","ll","hh"};
//数组的反转
/*
//方法1:
String temp;
for(int i=0;i<array1.length/2;i++)
{
temp=array1[i];
array1[i]=array1[array1.length-i-1];
array1[array1.length-1-i]=temp;
}
*/
//方法2:
String temp;
for(int i=0,j=array1.length-1-i;i<j;i++,j--)
{
temp=array1[i];
array1[i]=array1[j];
array1[j]=temp;
}
//遍历
for(int i=0;i<array1.length;i++)
{
System.out.print(array1[i]+"\t");
}
}
}
运行结果:
hh ll kk jj dd ss aa
练习 6;
数的查找(线性查找,二分查找)
eg1:线性查找
package com.enlai.consst;
import java.util.Scanner;
public class helloeverday{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
String []array1;
array1=new String[]{"aa","ss","dd","jj","kk","ll","hh"};
//遍历
for(int i=0;i<array1.length;i++)
{
System.out.print(array1[i]+"\t");
}
//查找
//(线性查找)
System.out.println();
String samm;
System.out.println("请输入你想找的值");
samm=scan.next();
boolean pan=true;
for(int i=0;i<array1.length;i++){
if(samm.equals(array1[i]))
{
System.out.println("找到该元素该元素的位置在"+i);
pan=false;
break;
}
}
if(pan){
System.out.println("没有找到该元素");
}
}
}
运行结果:
aa ss dd jj kk ll hh
请输入你想找的值
ss
找到该元素该元素的位置在1
二分查找
eg2:二分查找
package com.enlai.consst;
import java.util.Scanner;
public class helloeverday{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
System.out.println();
//二分查找
//前提所要查找的前提是必须有序
int []array2=new int []{-100,-34,-12,0,2,5,58,234};
int start,end,middle=0;
start=0;
end=array2.length-1;
boolean inflag=true;
System.out.println("请输入你想要查找的值");
int pan1=scan.nextInt();
while(inflag)
{
middle=(start+end)/2;
if(pan1==array2[middle]){
System.out.println("已找到该元素,该元素的位置在"+middle);
inflag=false;
break;
}
else if(pan1>array2[middle]){
start=middle+1;
}
else{
end=middle-1;
}
}
if(inflag)
{
System.out.println("找不到该元素");
}
}
}
运行结果:
请输入你想要查找的值
0
已找到该元素,该元素的位置在3
排序算法在下一篇。