作用:存储相同类型的一组数组,相当于一个容器,存放数据的。对同种数据类型集中存储、管理、便于遍历

数组类型:就是数组中存储的数据的类型

特点:数组中的所有元素必须属于相同的数据类型,数组中所有元素在内存中连续存储的。数组本身也是一种引用类型,数组名只是引用,指向堆中创建的数组对象,该对象保存一组其他引用或直接值。

一、数组的声明和创建:告诉系统数据类型是什么?

1.语法:

  数据类型[] 数组名;

2.数据的创建: 为数组分配内存空间(堆中分配)(数组名指向堆中)

   new 操作符的使用

3.声明并创建数组

  数据类型[] 数组名 = new 数据类型[大小];

4.数据特点:

  • 数组又一个字段length,表示此数组对象可以存储多少元素即数组长度;length不是实际保存的元素个数。
  • “[]”语法是访问数组对象成员的唯一方式
  • 对象数据保存的是引用,基本类型数组直接保存基本类型的值
  • 新生成的数组对象,其中所有的引用自动初始化为null,基本类型数组成员有各自默认值(数值型自动初始化为0,字符型为(char)0,不二星为false。

5.数组的初始化

  • 为数组中的成员一一赋值

6.数组赋值的两种方式

  • 边声明边赋值(静态初始化)

int[] score = {66,77,88,99}

  int[] score =new int[]{66,77,88,99}

  • 动态的获取(从键盘录入)信息并赋值
int[] score = new int[3];
Scanner input = new Scanner(System.in);
for(int i=0;i<3;i++){
score[i]=input.nextInt();
}
  • 综合赋值和遍历
import java.util.Scanner;

public class Arrays {

    public static void main(String[] args){

        int[] array = new int[3];
System.out.println(array[0]);
System.out.println(array.length);
//对数组中的元素进行赋值,通过下标进行赋值
array[0]=1;
array[2]=3;
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
//通过for循环遍历数组
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
} //创建数组的同时做初始化
int[] array1 = {10,20,30};
for(int i=0;i<array.length;i++){
System.out.println(array1[i]);
} //通过Scanner赋值
int[] score = new int[3];
Scanner input = new Scanner(System.in);
for(int i=0;i<3;i++){
score[i]=input.nextInt();
} for(int i=0;i<array.length;i++){
System.out.println(score[i]);
}
}
}

二、数据的查找

//线性查找法:从头开始一直找,直到找到为止,返回数组的下标,找不到返回-1
public static int linearSearch(){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要查找到的数:");
int string =input.nextInt();
int[] arrry= {20,10,5,30,35,25,40,50}; for(int i = 0;i<arrry.length;i++){
if(arrry[i]==string){
return i;
}else{
continue;
}
}
return -1;
}
//2分查找法,原理就是一切为2,中间位置和想要查找的数做比较,比中间数大,那么要后面一半,比中间数小,要前一半,以此类推
//找到返回下标,找不到返回-1
public static void binarySearch(){
int[] arrry= {20,21,22,30,35,36,40,50,51,52,53,54,55,67};
Scanner input = new Scanner(System.in);
int number =input.nextInt();
System.out.println("请输入你要查找到的数:");
int index = -1; //保存找到数的下标,没有找到返回-1
int start = 0;
int end = arrry.length-1;
int middle ;
while(start<=end){
//找到中间下标对应的元素值
middle = (start+end)/2;
if(number==arrry[middle]){
index = middle;
break;
} //如果被查找的数大于中间数,去掉左边一部分
if(number>arrry[middle]){
start = middle+1;
} //如果被查找的数小于中间数,去掉右边一部分
if(number<arrry[middle]){
end = middle-1;
}
} if(index==-1){
System.out.println("没有找到");
}else{
System.out.println("找到:"+index);
}
}

三、数组的排序

//冒泡排序
//工作原理,相邻两个元素比较大小,若第一个大于第二个,那么交换位置,此时的第二个再去和第三个比较,以此类推,一轮会得到一个最大的数,然后进行第二轮,那么比前面一轮少比较一次
public static void bubbleSort(){
int[] arrry= {20,10,5,30,35,25,40,50};
//N个数比较,轮数为N-1次
for(int i=0;i<arrry.length-1;i++){
//每一轮比较的次数 N-1-i
for(int j=0;j<arrry.length-i-1;j++){
//比较相邻的两个,大的往后排
if(arrry[j]>arrry[j+1]){
int temp;
temp = arrry[j];
arrry[j]=arrry[j+1];
arrry[j+1]=temp;
}
}
} //把排好的顺序输出
for(int i=0;i<arrry.length;i++){
System.out.print(arrry[i]+",");
}
}

4个数比较了3轮,那么n个数比较n-1轮

  

  

java的数组的更多相关文章

  1. java中数组的相关知识

      1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...

  2. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  3. JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"

    将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“n ...

  4. java将数组中的零放到末尾

    package com.shb.java; /** * 将数组中的0放到数组的后边,然后原来的非零数的顺序不改变 * @author BIN * */ public class Demo2{ publ ...

  5. Java中数组的特性

    转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...

  6. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

  7. Java RGB数组图像合成 ImageCombining (整理)

    /** * Java RGB数组图像合成 ImageCombinning (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * 注意事项: * 1.本程序为java程序,同时感谢您花费 ...

  8. java对象数组

    问题描述:     java 对象数组的使用 问题解决: 数组元素可以是任何类型(只要所有元素具有相同的类型) 数组元素可以是基本数据类型 数组元素也可以是类对象,称这样的数组为对象数组.在这种情况下 ...

  9. Java中数组的初始化方式

    Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...

  10. Java动态数组

    其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...

随机推荐

  1. Django用户继承AbstractUser后密码为明文

    Django用户继承AbstractUser后密码为明文 其实本不应该有这个问题,却花了我很久的时间,因为还是初学阶段. 造成这个原因是因为在admin注册的生活没有指定Admin 在app的admi ...

  2. iOS---------获取当前年份

    NSDate *  senddate=[NSDate date]; NSDateFormatter  *dateformatter=[[NSDateFormatter alloc] init]; [d ...

  3. Git创建本地版本库

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...

  4. Debain/Ubuntu/Deepin 下使用 ss

    如果你有一台 ss 的服务器,在 Debian Like 的环境下要如何***呢? 安装 ss 客户端 如果还没安装 pip 就得先安装 sudo apt-get install python-pip ...

  5. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  6. 基于FPM制作nginx RPM包

    目录 环境 配置 FPM安装 环境 系统 其它 CentOS 7.5 需提前配置好epel 配置 [root@localhost ~]# yum clean all && yum ma ...

  7. Linux(一)—— Unix&Linux 历史

    Linux(一)-- Unix&Linux 历史 Unix =Unix内核+Unix实用工具 Unix Unix 的诞生 Unix的历史可以追溯到20世纪60年代中期,当时麻省理工学院,AT& ...

  8. WPF软件开发系统之六——药品管理查询系统

    本系统使用.Net WPF开发,运行于Windows操作系统,电脑或者触摸屏设备. 功能主要是药品按照各类条件检索及展示. 开发环境及工具: 首页: 按关键字查询: 按功效查询: 还有其它按拼音.按笔 ...

  9. MySQL SET数据类型

    SET: 多选字符串数据类型,适合存储“多个值”. 设定set的时候,同样需要设定“固定的几个值”:存储的时候,可以存储其中的若干个值. 设定set的格式: 字段名称  SET("选项1&q ...

  10. mysql表与表之间数据的转移

    1.相同表结构 INSERT INTO table1 SELECT * FROM table2; 2.不同表结构 INSERT INTO table1(filed1,...,filedn) SELEC ...