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. mysql 表映射为java bean 手动生成。

    在日常工作中,一般是先建表.后建类.当然也有先UML构建类与类的层级关系,直接生成表.(建模)这里只针对先有表后有类的情况.不采用代码生成器的情况. 例如: 原表结构: ),)) BEGIN ); ) ...

  2. 保持ssh连接长时间不断开的技巧

    我经常用ssh连接服务器,过段时间不用, 需要恢复一下断开的连接, 原因是NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率,因为 长时间保持连接, 会长期占用部分系统资 ...

  3. 在cxGrid表格中如何获得当前列的字段名

    var GridDBTableView:TcxGridDBTableView; ColIndex:Integer; FieldName:string; begin GridDBTableView := ...

  4. MySql 的基本使用之连接数据库、选择数据库、查看表结构

    1.连接 mysql  mysql  -u username -p -h host -P port 端口号:默认 3306. 如果是连接本地数据库,可以直接使用 mysql -uroot -p 2.选 ...

  5. Hadoop 学习之Docker

    docker环境的配置请参考:http://www.cnblogs.com/frankliu/p/8052673.html hadoop-docker安装地址参考:https://hub.docker ...

  6. week07 13.3 NewsPipeline之 三News Deduper之 tf_idf 查重

    我们运行看结果 安装包sklearn 安装numpy 安装scipy 终于可以啦 我们把安装的包都写在文件里面吧 4行4列 轴对称 只需要看一半就可以 横着看 竖着看都行 数值越接近1 表示越相似 我 ...

  7. Java中的包装数据类型

    基本类型 包装器类型 boolean Boolean char Character int Integer byte Byte short Short long Long float Float do ...

  8. asp.net文件/大文件上传需要配置的项目整理

    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 最可能的原因: •Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值. 可尝 ...

  9. Linux 上pcntl安装步骤

    一. 下载对应的PHP源码包 wget http://cn2.php.net/get/php-5.5.20.tar.gz/from/this/mirror 二. 解压下载的源码文件 tar -zxvf ...

  10. Unity 2018 By Example 2nd Edition

    Unity is the most exciting and popular engine used for developing games. With its 2018 release, Unit ...