1.创建一维数组

  最简单快捷的方法是:声明的同时为数组分配内存。如:

  int month[]=new int[12]

  也可以先声明再分配内存。如:

  int month[];   //或int[] month;
month=new int[12];

  在初始化一维数组时,可采用两种方法。如:

  int arr[]=new int[]{1,2,3,4,5};
或者:int arr[]={1,2,3,4,5};

2.创建二维数组

  创建二维数组的方法和一维数组一样有两种方法。如:

  //先声明再分配
int arr[][];
arr=new int[2][4];
//直接分配
int arr[][]=new int[2][4];

  注:分配内存时可以分配为每一维分配,常用于非规则数组。如:

   int a[][];
a=new int[2][];
a[0]=new int[4];
a[1]=new int[5];

  关于二维数组的操作,要学会使用foreach语句遍历二维数组。

   int arr[][]={{2,3},{3,7},{6,5}};
for(int x[]:arr){
for(int e:x){
system.out.print(e+' ');
}
}

3.数组操作

  3.1 填充元素

    导入java.util.Arrays后,使用fill()方法。如:

      Arrays.fill(arr,8);
    Arrays.fill(arr,1,2,8); //在第一个到第二个(不包括)元素间填充8

  3.2 排序

       导入java.util.Arrays后,使用Arrays.sort()方法。如:

      int arr[]={2,5,1,7,6};
Arrays.sort(arr);

  3.3 复制数组

    使用Arrays类的两个方法:

    copyOf():复制数组到指定长度数组。如:

    int arr[]={21,45,46};
    int newarr[]=Arrays.copyOf(arr,5); //newarr数组为:21,45,46,0,0

    copyOfRange():复制指定长度数组元素到新数组。如: 

    int arr[]={1,4,5,7,8,9};
    int newarr[]=Arrays.copyOfRange(arr,0,3);

  3.4 数组查询

    Arrays类的binarySearch()方法提供了多种重载,可使用二分查找方式搜索。如:

    binarySearch(Object[],key)、binarySearch(Object[],int fromIndex,int toIndex,int key).

  3.5 数组排序算法

    掌握冒泡排序、直接选择排序等基本排序算法的Java程序书写。下面以冒泡排序为例,自己用Java写一下该算法:

  public class BubbleSort{
  public void main(String[] args){
int arr[]={2,4,8,5,6,10,1};
//创建BubbleSort的实例,调用方法sort排序
BubbleSort sorter=new BubbleSort();
sorter.sort(arr);
   public void sort(int array[]){
  for(int i=0;i<array.length();i++){
  for(int j=array.length()-2;j>i;j--){
  if(array[j+1]<array[j]){
  int temp=array[j+1];
  array[j+1]=array[j];
  array[j]=temp;
}
}
   }
  }

  

    

学习笔记——Java数组的更多相关文章

  1. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  2. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  3. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  4. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  5. java学习笔记六——数组

    数组类型 数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素. Java数组要求所有数组元素具有相同的数据类型.因此,数组元素的数据类型是唯一的. ...

  6. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  7. 大数据学习笔记——Java篇之网络编程基础

    Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对 ...

  8. 大数据学习笔记——Java篇之IO

    IO学习笔记整理 1. File类 1.1 File对象的三种创建方式: File对象是一个抽象的概念,只有被创建出来之后,文件或文件夹才会真正存在 注意:File对象想要创建成功,它的目录必须存在! ...

  9. 大数据学习笔记——Java篇之集合框架(ArrayList)

    Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...

随机推荐

  1. C语言-知识点及学习路线

    最近进行了为期两周的C语言培训,把几年前学过的C语言又重新学习了一遍,然后根据学习的内容和过程,总结了一下学习路线.这是基本的C语言学习路线,相当于编程语言类的基础,再根据自己究竟是要做单片机开发,还 ...

  2. Intel X710网卡VxLAN offload 性能测试

    Intel X710网卡VxLAN offload性能测试 1.  测试环境参数: 交换机:盛科E580 服务器: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz ...

  3. 利用cocoapods创建基于git的私有库

    上一篇文章记录了我利用cocoapods创建基于SVN的私有库的全部过程,今天我再记录一下基于git创建的过程. 整体先说明一下创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的 ...

  4. 网站环境apache + php + mysql 的XAMPP,如何实现一个服务器上配置多个网站?

    xampp 是一个非常方便的本地 apache + php + mysql 的调试环境,在本地安装测试 WordPress 等各种博客.论坛程序非常方便.今天我们来给大家介绍一下,如何使用 XAMPP ...

  5. HTML5+MUI+HBuilder 之初探情人

    07,08年那会儿正当Java火爆,C/C++仍是广泛运用的一门语言的时候,所以 我的大学都献给了C/C++和Java.当诺基亚的倒闭成为按键机时代衰落的标志时,移动APP的开发也如破堤之洪,爆炸式的 ...

  6. 选择排序法-java详解案例

    /**  * 功能:选择排序法 * 思想:第一次从R[0]-R[N-1]中选取最小值,与R[0]交换,第二次从R[1]-R[N-1]中选取最小值,与R[1]交换, * 第三次从R[2]-R[N-1]中 ...

  7. 如何用C语言封装 C++的类,在 C里面使用

    本文给出了一种方法.基本思想是,写一个 wrapper文件,把 C++类封装起来,对外只提供C语言的接口,和 C++i相关的都在  wrapper的实现文件里实现. 1. apple.h #ifnde ...

  8. Windows Server 2008 R2防火墙出站规则

    出战规则指Windows Server 2008 R2系统访问外部的某台计算机通信数据流. 配置防火墙阻止Windows Server 2008 R2系统通过IE软件访问外部的网站服务器,阻止Wind ...

  9. 删除坐标相同文本对象 按照原y坐标排序

    ;; ;;程序名称:对象水平对齐程序,并且按照竖直方向排列 ;;执行命令:tb2 ;;程序功能:将选定的对象左对齐,并且按照竖直方向排列. ;; (defun c:tb2(/ selobjs oldc ...

  10. OpenCV框架介绍

    OpenCV框架介绍 概述 OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司下属研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算 ...