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

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

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

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

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. h5与c3权威指南笔记--css3结构性伪类选择器root,not,empty,target

    root:将样式绑定到根元素(html中的根元素是<html></html>) 举个栗子 :root{ background-color: yellow; } body{ ba ...

  2. 微信小程序 选择微信自带的地址 用户授权选择了拒绝

    // 选择微信自带地址 addAddr:function () { wx.chooseAddress({ success: function (res) { self.setData({ addrIn ...

  3. js 3D旋转效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 原生JS替代jQuery的各种方法汇总

    前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...

  5. DevExpress TreeList 禁止节点拖动到其他节点上

    背景 在做一个类似文件树的控件,支持节点从树上向其它的控件拖动程序,但是要保证树上的节点不能拖动上其他的节点上. 代码 /// <summary> /// 拖动节点完成 /// </ ...

  6. js实现语音功能

    在项目中需要对ajax请求返回的消息进行语音播报.那么什么录制的就是在太low啦.下面js贴代码 str 为返回的data //语音播报function voiceAnnouncements(str) ...

  7. 如何在FineUIMvc(ASP.NET MVC)中显示复杂的表格列数据(列表和对象)?

    起源 最初,这个问题是知识星球内的一个网友提出的,如何在FineUIMvc中展现复杂的列数据? 在FineUIPro中,我们都知道有一个 TemplateField 模板列可以使用,我们只需要在后台定 ...

  8. 01-Redhat/Centos7网卡命名介绍及修改方式

    1. Redhat/Centos7网卡命名介绍 1.1 网络设备命名 Redhat/Centos7提供在网络接口中使用新的网络设备命名方法.这些功能会更改系统中的网络接口名称,以便定位和区分这些接口. ...

  9. java+testng接口测试入门

    testNG是一个测试框架,它能组织测试用例按照你想要的方式进行运行,并输出一定格式的便于阅读的测试报告(结果),通过java+testng的方式说明一下接口测试的基本使用方法. 一.环境搭建 a)千 ...

  10. RMQ 问题 ST 算法(模板)

    解决区间查询最大值最小值的问题 用 $O(N * logN)$ 的复杂度预处理 查询的时候只要 $O(1)$ 的时间  这个算法是 real 小清新了   有一个长度为 N 的数组进行 M 次查询 可 ...