1.数组的概念

/*
数组的格式 数组:
同一种数据类型的若干个值的容器 元素:数组中的值称为元素
索引:元素的标号,从0开始
长度:数组中元素的个数
*/
public class ArrayDemo1{
public static void main(String[] args){ int a = 1;
int b = 2;
int c = 3; //数据类型 变量名 = 初始值; //定义数组,第一种格式:动态初始化,定义数组时,不指定数组里具体的值.
int[] arr = new int[10]; //第二种静态初始化:定义数组时,元素已经确定
int[] arr2 = new int[]{1,2,3};
//简化写法
int[] arr3 = {10,20,30};
}
}

2.数组元素的使用

/*
数组元素的使用:
数组名[索引值] 数组元素的默认值:
能为0的为0,能为0.0的为0.0,能为false的为false,能为null的为null
*/
public class ArrayDemo2{
public static void main(String[] args){
//创建一个长度为5的int型数组
// double[] arr = new double[5];
// boolean[] arr = new boolean[5];
// String[] arr = new String[5]; /* System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
*/ // int[] arr = new int[5];
// byte[] arr = new byte[5];
// short[] arr = new short[5];
// char[] arr = new char[5];
// int[] arr = new int[5];
//用循环改进
for(int i = 0;i<5;i++){
System.out.println(arr[i]);
}
}
}

3.获取数组中的最值

/*
获取数组的最值(最大值,最小值) int[] arr = {1,4,3,2}; */
public class ArrayDemo3{
public static void main(String[] args){
/*
int[] arr = getArray(20);
printArray(arr);
int max = getMax(arr);
System.out.println("最大值是: " + max);
int min = getMin(arr);
System.out.println("最小值是: " + min);
*/
printArray(getUniqueArray(20));
} //获取一个int型数组的最大值
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
} //获取一个int型数组的最小值
public static int getMin(int[] arr){
int min = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] < min){
min = arr[i];
}
}
return min;
} //获取一个范围是1-50之间的int数组
public static int[] getArray(int n){
int[] arr = new int[n];
//循环产生随机数,放到数组中
for(int i = 0;i<arr.length;i++){
int r = (int)(Math.random() * 50 + 1);
arr[i] = r;
} return arr;
} //打印数组元素
public static void printArray(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
} //生成一个不包含重复元素的int型数组
public static int[] getUniqueArray(int n){
int[] arr = new int[n];//
for(int i = 0;i<arr.length;i++){
int r = (int)(Math.random() * 50 + 1);
while(isExist(arr,r)){
r = (int)(Math.random() * 50 + 1);
}
arr[i] = r;
}
return arr;
} //判断一个数组中是否包含某个数值
public static boolean isExist(int[] arr,int value){
for(int i = 0;i<arr.length;i++){
if(value == arr[i]){
return true;
}
}
return false;
}
}

4.从键盘录入数据,并求最值

/*
从键盘录入数组的元素,并求最值
*/
import java.util.Scanner; public class ArrayDemo4{
public static void main(String[] args){
int[] arr = genArray();
System.out.println("最大值是: " + getMax(arr));
System.out.println("最小值是: " + getMin(arr));
} //从键盘录入数据,并返回一个int型数组
public static int[] genArray(){
Scanner s = new Scanner(System.in); System.out.print("输入数组的长度 : ");
int len = s.nextInt();
int[] arr = new int[len]; for(int i = 0;i<arr.length;i++){
System.out.print("请输入第"+ (i+1) + "个数: ");
arr[i] = s.nextInt();
} return arr;
} //获取最小值
public static int getMin(int[] arr){
int min = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] < min){
min = arr[i];
}
}
return min;
} //获取最大值
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
}

5.随机生成一个5个元素在(1-10)的int型数组,求一个随机数在这个数组中第一次出现的索引值

/*
随机生成一个5个元素(1-10)的int型数组,求一个随机数在这个数组中第一次出现的索引值
*/
public class ArrayDemo6{
public static void main(String[] args){
int[] arr = genArray();
printArray(arr);
int r = (int)(Math.random() * 10 + 1);
int index = getIndex(arr,r); if(index < 0){
System.out.println(r + "没找到");
}else{
System.out.println(r + "第一次出现的索引是: " + index);
} } //获取一个数在指定数组中出现的第一次索引值
public static int getIndex(int[] arr,int value){
for(int i = 0;i<arr.length;i++){
if(arr[i] == value){
return i;
}
}
return -1;
} //生成一个int型数组
public static int[] genArray(){
int[] arr = new int[5];
for(int i = 0;i<arr.length;i++){
int r = (int)(Math.random() * 10 + 1);
arr[i] = r;
}
return arr;
} //打印数组
public static void printArray(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}

6.用数组模拟裁判打分

    5个裁判,去掉最高分和最低分,然后求剩余元素的平均值.

/*
用数组模拟打分:
5个裁判,去掉最高分,最低分,然后求剩余元素的平均值作为最终得分
*/
public class ArrayDemo7{
public static void main(String[] args){
int n = 5;
int[] arr = genArray(n);
print(arr); double avg = getAvg(arr);
System.out.println("平均分是: " + avg); } //求平均值
public static double getAvg(int[] arr){
int max = getMax(arr);
int min = getMin(arr); double sum = 0.0;
for(int i = 0;i<arr.length;i++){
sum += arr[i];
} sum = sum - max - min; return sum / (arr.length - 2);
} //求最大值
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
} //求最小值
public static int getMin(int[] arr){
int min = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] < min){
min = arr[i];
}
}
return min;
} //
public static int[] genArray(int n){
int[] arr = new int[n];
for(int i = 0;i<arr.length;i++){
arr[i] = (int)(Math.random() * 101);
}
return arr;
} public static void print(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}

7.定义一个int型数组,定义方法,把数组的元素变成原来的2倍

/*
定义一个int型数组,定义方法,把数组的元素变成原来的2倍
*/
public class ArrayTest{
public static void main(String[] args){
int[] arr = {1,2,3,4,5};
printArray(arr); doubleArray(arr);
printArray(arr);
} //将元素变成原来的2倍
public static void doubleArray(int[] arr){
for(int i = 0;i<arr.length;i++){
arr[i] = arr[i] * 2;
}
} //打印数组元素
public static void printArray(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}

8.数组的复制:返回值类型是数组

判断堆空间中的两个对象是否是同一数组,可以使用 ==判断他们的地址值

/*
数组的复制:返回值类型是数组
判断堆空间中的两个对象(数组)是否是同一个数组,可以使用 == 判断他们的地址值
*/
public class CopyArrayDemo{
public static void main(String[] args){
int[] arr1 = genArray();
print(arr1);
int[] arr2 = copyArray(arr1);
// int[] arr2 = arr1;
print(arr2); // System.out.println(arr1 == arr2);//
System.out.println(arr1);//[I@6d06d69c 类型@十六进制值
} public static int[] genArray(){
int[] arr = new int[5];
for(int i = 0;i<arr.length;i++){
int r = (int)(Math.random() * 50 + 1);
arr[i] = r;
}
return arr;
} public static void print(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
} //int[]
//int[]
public static int[] copyArray(int[] arr){
//创建一个和参数一样大小的数组
int[] copy = new int[arr.length];
//遍历参数的数组,把元素拷贝到新数组中
for(int i = 0;i<arr.length;i++){
copy[i] = arr[i];
} return copy;
}
}

9.自定义方法之间的互相调用

/*
演示自定义方法之间的互相调用
*/
public class Demo{
public static void main(String[] args){
introduce("Zhangsan");
} //
public static void sayHi(){
System.out.println("Hello");
} //
public static void introduce(String name){//name = "Zhangsan";
sayHi();//调用自定义方法
System.out.println("My name is : " + name);
}
}

10.求两个double值得四则运算结果

/*
求两个double值的四则运算结果
*/
public class Demo2{
public static void main(String[] args){
test(10.0,2.0);
} //void
//double d1,double d2
public static void test(double d1,double d2){
System.out.println("两个数的和是: " + (d1 + d2));
System.out.println("两个数的差是: " + (d1 - d2));
System.out.println("两个数的积是: " + (d1 * d2));
System.out.println("两个数的商是: " + (d1 / d2));
} }

11.数组的常见异常

/*
数组操作的常见异常
1.数组索引越界
2.空指针异常
*/
public class ExceptionDemo{
public static void main(String[] args){
int[] arr = new int[]{1,2,3,4,5,6};
int[] arr2 = new int[]{7,8,9};
int[] arr3 = new int[]{70,80,90}; printArray(arr);
printArray(arr2);
printArray(arr3); boolean[] arr4 = {true,false,true,true};
printArray(arr4); // System.out.println(arr.length); // for(int i = 0;i<3;i++){//根据数组的length属性动态的获取数组的长度
// for(int i = 0;i<arr.length;i++){
// System.out.println(arr[i]);
// } // System.out.println(arr[0]);
// System.out.println(arr[1]);
// System.out.println(arr[2]);
// System.out.println(arr[30]);//java.lang.ArrayIndexOutOfBoundsException:数组索引越界异常
// for(int i = 0;i<arr.length;i++){
// System.out.println(arr[i]);
// }
// arr = null;
// System.out.println(arr[2]);//java.lang.NullPointerException:空指针异常
// for(int i = 0;i<arr.length;i++){
// System.out.println(arr[i]);
// }
} //void
//int[] arr
public static void printArray(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
} public static void printArray(boolean[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}

12.合并两个数组

/*
合并两个数组
data1 = [1,2,3] data2 = [4,5,6]
*/
public class MergeDemo{
public static void main(String[] args){
int[] arr1 = genArray();
int[] arr2 = genArray();
System.out.println("生成的第一个小数组是:");
print(arr1);
System.out.println("生成的第二个小数组是:");
print(arr2); int[] res = merge(arr1,arr2);
System.out.println("合并之后的数组是:");
print(res);
} //随机生成一个长度随机(1-5)的int数组(1-50)
public static int[] genArray(){
int len = (int)(Math.random() * 5 + 1);
int[] arr = new int[len];
for(int i = 0;i<arr.length;i++){
arr[i] = (int)(Math.random() * 50 + 1);
}
return arr;
} //合并两个数组
public static int[] merge(int[] a,int[] b){
int[] bigArray = new int[a.length + b.length];
int index = 0;
for(int i = 0;i<a.length;i++){
bigArray[index] = a[i];
index++;
} for(int i = 0;i<b.length;i++){
bigArray[index] = b[i];
index++;
}
return bigArray;
/*
for(int i = 0;i<a.length;i++){
bigArray[i] = a[i];
} //
for(int i = 0;i<b.length;i++){
bigArray[i + a.length] = b[i];
}
return bigArray;
*/
} public static void print(int[] arr){
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
}

13.

最新文章

  1. [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法
  2. 我和Ajax的故事
  3. sql:找出工资第二高的人名
  4. Android 的 init.rc 文件简介【转】
  5. Notepad++中的颜色属性大全
  6. iOS 数据持久性存储-对象归档
  7. destoon程序中qq号码,手机号,msn必选项实现方法
  8. linux常用命令--diff
  9. js 日期格式化 函数
  10. Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
  11. UWP应用程序使用Prism框架构建MVVM
  12. [SCOI2009]windy数
  13. redis的基本数据类型
  14. 『简单积性函数和dirichlet卷积』
  15. BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)
  16. window64位电脑如何通过VMware Workstation12.5.6安装苹果操作系统 macOS High Sierra 10.13
  17. 网络操作基础(two)
  18. windows中用bat脚本更改环境变量
  19. ViewParent 和 ViewManager
  20. [Optimisation] Read &amp; Write file on Hard Disk

热门文章

  1. android 开发 View _7_ 动态自定义View
  2. py库: flask笔记
  3. HTML5 元素文字超出部分显示省略号(支持多行),兼容几乎所有常用浏览器
  4. leetcode78
  5. leetcode200
  6. 如何将R中的data frame对象的数据导入到DB
  7. 吴裕雄 python深度学习与实践(7)
  8. jquery即时获取上传文件input file文件名
  9. 十一 hashlib模块
  10. linux主机名设置