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.

数组-Array的更多相关文章

  1. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别

    ArrayList和Vector的区别ArrayList与Vector主要从二方面来说.  一.同步性:   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...

  2. go 数组(array)、切片(slice)、map、结构体(struct)

    一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...

  3. javascript类型系统——数组array

    × 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...

  4. swift基本用法-数组array

    数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...

  5. C#中数组Array、ArrayList、泛型List<T>的比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  6. Javascript基础系列之(四)数据类型 (数组 array)

    字符串,数值,布尔值都属于离散值(scalar),如果某个变量是离散的,那么任何时候它只有一个值. 如果想使用变量存储一组值,就需要使用数组(array). 数组是由多个名称相同的树值构成的集合,集合 ...

  7. AS3 - 数组Array的几个常用方法(附样例)

    AS3 - 数组Array的几个常用方法(附样例) 2015-03-30 10:39发布:hangge浏览:241   Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法. 1 ...

  8. Linux数组array基础

    Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...

  9. 学习Swift -- 数组(Array) - 持续更新

    集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...

  10. 数据结构之数组Array

    数组Array 基本操作 Status InitArray(int dimm,...)//若维数dim和随后的各维长度合法,则构造相应的数组A,并返回OK Status DestroyArray() ...

随机推荐

  1. Linux 实时查看tomcat 日志--less命令

    查看tomcat日志通常用 tail -n  或者 tail -f 或者grep 或者 vi cat等命令去查看异常信息,但是日志是在不停地刷屏,tail是动态的在变的,我们往往期望从日志最后一行往前 ...

  2. spring-security使用

    极客学院Spring Security 例子 <?xml version="1.0" encoding="UTF-8"?> <beans:be ...

  3. iptables随笔

    iptables 分为四表五链 四表: filter表 nat 表 mangle 表 raw 表 五链 INPUT 链 OUTPUT 链 FORWARD 链 PREROUTING(路由前) POSTR ...

  4. 25.Hibernate-配置文件.md

    目录 1.主配置文件 1.1定义 1.1.1分类 1.1.2分类 1.1.3不使用配置文件生成表 1.2教程 2. 映射配置文件 1.主配置文件 1.1定义 1.1.1分类 在hibernate的配置 ...

  5. pyspider示例代码:解析JSON数据

    pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下比较经典的示例进行简单讲解,希望对新手有一些帮助. 示例说明: py ...

  6. OkHttp 同步异步操作

    OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应. 一.使用OkHttp OkHttp发送请求后,可以通过同步或异步地方式获取响应. ...

  7. 页面JS实现按钮点击增加输入框

    学习记录 https://www.tuicool.com/articles/byUf2qe

  8. linux上安装字体

    安装字体命令: yum install wqy-microhei-fonts wqy-zenhei-fonts   安装完字体的存放目录:/usr/share/fonts   默认会在fonts目录下 ...

  9. win7 win10下80端口被System进程占用的解决方法

    用如下方法可以解决System进程占用80端口的问题:打开RegEdit:开始-运行-输入regedit-调出注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl ...

  10. cmd中sudo以后显示password不能输入密码

    文本界面还是图形界面下输入密码都不会有回显,这是为了安全考虑. 其实你不是不能输入密码只是你看不到而已,事实上你已经输入进去了,回车后就能看到效果了. 来源于:https://zhidao.baidu ...