声明数组:

int[] a;

int a[];

两种方式。一般选择第一种,比较一目了然。

初始化,必须指定长度:

int[] a = new int[10];

int[] a = {1,2,3};

初始化:

  1. package com.zjf;
  2.  
  3. import java.util.Arrays;
  4.  
  5. import com.zjf.spring.mybatis.model.Person;
  6.  
  7. public class Test {
  8.  
  9.    public static void main(String[] args) {
  10.       //定义数组
  11.       int[] a = new int[3];
  12.       //默认初始化 打印查看为0
  13.       System.out.println(Arrays.toString(a));
  14.       //也可以存储对象
  15.       Person[] p = new Person[2];
  16.       //默认初始化为null
  17.       System.out.println(Arrays.toString(p));
  18.  
  19.     }
  20. }

结果:

[0, 0, 0]

[null, null]

数组拷贝

两种方式。

  1. package com.zjf;
  2. import java.util.Arrays;
  3. public class Test {
  4.    public static void main(String[] args) {
  5.       int[] a = {0,1,2,3,4,5,6,7,8,9};
  6.       int[] b = Arrays.copyOf(a, a.length);
  7.       int[] c = new int[a.length];
  8.       System.arraycopy(a, 0, c, 0, a.length);
  9.       System.out.println(Arrays.toString(b));
  10.       System.out.println(Arrays.toString(c));
  11.     }
  12. }

结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

数组排序:

  1. package com.zjf;
  2. import java.util.Arrays;
  3. import com.zjf.spring.mybatis.model.Person;
  4. public class Test {
  5.    public static void main(String[] args) {
  6.       int[] a = {0,6,2,8,4,5,1,7,3,9};
  7.       Arrays.sort(a);
  8.       System.out.println(Arrays.toString(a));
  9.       Person p1 = new Person(2,"zjf",29,"beiing");
  10.       Person p2 = new Person(1,"xhj",29,"beiing");
  11.       Person[] p = {p1,p2};
  12.       Arrays.sort(p);
  13.       System.out.println(Arrays.toString(p));
  14.     }
  15. }

结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Exception in thread "main" java.lang.ClassCastException: com.zjf.spring.mybatis.model.Person cannot be cast to java.lang.Comparable

at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source)

at java.util.ComparableTimSort.sort(Unknown Source)

at java.util.ComparableTimSort.sort(Unknown Source)

at java.util.Arrays.sort(Unknown Source)

at com.zjf.Test.main(Test.java:13)

  1. package com.zjf;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Comparator;
  5.  
  6. import com.zjf.spring.mybatis.model.Person;
  7.  
  8. public class Test {
  9.    public static void main(String[] args) {
  10.       int[] a = { 0, 6, 2, 8, 4, 5, 1, 7, 3, 9 };
  11.       Arrays.sort(a);
  12.       System.out.println(Arrays.toString(a));
  13.       Person p1 = new Person(2, "zjf", 29, "beiing");
  14.       Person p2 = new Person(1, "xhj", 29, "beiing");
  15.       Person[] p = { p1, p2 };
  16.       Arrays.sort(p, new Comparator<Person>() {
  17.          public int compare(Person o1, Person o2) {
  18.             return o1.getId().compareTo(o2.getId());
  19.          }
  20.       });
  21.       System.out.println(Arrays.toString(p));
  22.    }
  23. }

结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[id:1,name:xhj, id:2,name:zjf]

注:Arrays.sort使用的是快速排序算法。

Arrays的API:

方法摘要

static

<T> List<T>

asList(T... a)
返回一个受指定数组支持的固定大小的列表。

static int

binarySearch(byte[] a, byte key)
使用二分搜索算法来搜索指定的 byte 型数组,以获得指定的值。

static int

binarySearch(char[] a, char key)
使用二分搜索算法来搜索指定的 char 型数组,以获得指定的值。

static int

binarySearch(double[] a, double key)
使用二分搜索算法来搜索指定的 double 型数组,以获得指定的值。

static int

binarySearch(float[] a, float key)
使用二分搜索算法来搜索指定的 float 型数组,以获得指定的值。

static int

binarySearch(int[] a, int key)
使用二分搜索算法来搜索指定的 int 型数组,以获得指定的值。

static int

binarySearch(long[] a, long key)
使用二分搜索算法来搜索指定的 long 型数组,以获得指定的值。

static int

binarySearch(Object[] a, Object key)
使用二分搜索算法来搜索指定数组,以获得指定对象。

static int

binarySearch(short[] a, short key)
使用二分搜索算法来搜索指定的 short 型数组,以获得指定的值。

static

<T> int

binarySearch(T[] a, T key, Comparator<? super T> c)
使用二分搜索算法来搜索指定数组,以获得指定对象。

static boolean

deepEquals(Object[] a1, Object[] a2)
如果两个指定数组彼此是深层相等 的,则返回 true。

static int

deepHashCode(Object[] a)
基于指定数组的"深层内容"返回哈希码。

static String

deepToString(Object[] a)
返回指定数组"深层内容"的字符串表示形式。

static boolean

equals(boolean[] a, boolean[] a2)
如果两个指定的 boolean 型数组彼此相等,则返回 true。

static boolean

equals(byte[] a, byte[] a2)
如果两个指定的 byte 型数组彼此相等,则返回 true。

static boolean

equals(char[] a, char[] a2)
如果两个指定的 char 型数组彼此相等,则返回 true。

static boolean

equals(double[] a, double[] a2)
如果两个指定的 double 型数组彼此相等,则返回 true。

static boolean

equals(float[] a, float[] a2)
如果两个指定的 float 型数组彼此相等,则返回 true。

static boolean

equals(int[] a, int[] a2)
如果两个指定的 int 型数组彼此相等,则返回 true。

static boolean

equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。

static boolean

equals(Object[] a, Object[] a2)
如果两个指定的 Objects 数组彼此相等,则返回 true。

static boolean

equals(short[] a, short[] a2)
如果两个指定的 short 型数组彼此相等,则返回 true。

static void

fill(boolean[] a, boolean val)
将指定的 boolean 值分配给指定 boolean 型数组的每个元素。

static void

fill(boolean[] a, int fromIndex, int toIndex, boolean val)
将指定的 boolean 值分配给指定 boolean 型数组指定范围中的每个元素。

static void

fill(byte[] a, byte val)
将指定的 byte 值分配给指定 byte 节型数组的每个元素。

static void

fill(byte[] a, int fromIndex, int toIndex, byte val)
将指定的 byte 值分配给指定 byte 型数组指定范围中的每个元素。

static void

fill(char[] a, char val)
将指定的 char 值分配给指定 char 型数组的每个元素。

static void

fill(char[] a, int fromIndex, int toIndex, char val)
将指定的 char 值分配给指定 char 型数组指定范围中的每个元素。

static void

fill(double[] a, double val)
将指定的 double 值分配给指定 double 型数组的每个元素。

static void

fill(double[] a, int fromIndex, int toIndex, double val)
将指定的 double 值分配给指定 double 型数组指定范围中的每个元素。

static void

fill(float[] a, float val)
将指定的 float 值分配给指定 float 型数组的每个元素。

static void

fill(float[] a, int fromIndex, int toIndex, float val)
将指定的 float 值分配给指定 float 型数组指定范围中的每个元素。

static void

fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组的每个元素。

static void

fill(int[] a, int fromIndex, int toIndex, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。

static void

fill(long[] a, int fromIndex, int toIndex, long val)
将指定的 long 值分配给指定 long 型数组指定范围中的每个元素。

static void

fill(long[] a, long val)
将指定的 long 值分配给指定 long 型数组的每个元素。

static void

fill(Object[] a, int fromIndex, int toIndex, Object val)
将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。

static void

fill(Object[] a, Object val)
将指定的 Object 引用分配给指定 Object 数组的每个元素。

static void

fill(short[] a, int fromIndex, int toIndex, short val)
将指定的 short 值分配给指定 short 型数组指定范围中的每个元素。

static void

fill(short[] a, short val)
将指定的 short 值分配给指定 short 型数组的每个元素。

static int

hashCode(boolean[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(byte[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(char[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(double[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(float[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(int[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(long[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(Object[] a)
基于指定数组的内容返回哈希码。

static int

hashCode(short[] a)
基于指定数组的内容返回哈希码。

static void

sort(byte[] a)
对指定的 byte 型数组按数字升序进行排序。

static void

sort(byte[] a, int fromIndex, int toIndex)
对指定 byte 型数组的指定范围按数字升序进行排序。

static void

sort(char[] a)
对指定的 char 型数组按数字升序进行排序。

static void

sort(char[] a, int fromIndex, int toIndex)
对指定 char 型数组的指定范围按数字升序进行排序。

static void

sort(double[] a)
对指定的 double 型数组按数字升序进行排序。

static void

sort(double[] a, int fromIndex, int toIndex)
对指定 double 型数组的指定范围按数字升序进行排序。

static void

sort(float[] a)
对指定的 float 型数组按数字升序进行排序。

static void

sort(float[] a, int fromIndex, int toIndex)
对指定 float 型数组的指定范围按数字升序进行排序。

static void

sort(int[] a)
对指定的 int 型数组按数字升序进行排序。

static void

sort(int[] a, int fromIndex, int toIndex)
对指定 int 型数组的指定范围按数字升序进行排序。

static void

sort(long[] a)
对指定的 long 型数组按数字升序进行排序。

static void

sort(long[] a, int fromIndex, int toIndex)
对指定 long 型数组的指定范围按数字升序进行排序。

static void

sort(Object[] a)
根据元素的自然顺序,对指定对象数组按升序进行排序。

static void

sort(Object[] a, int fromIndex, int toIndex)
根据元素的自然顺序,对指定对象数组的指定范围按升序进行排序。

static void

sort(short[] a)
对指定的 short 型数组按数字升序进行排序。

static void

sort(short[] a, int fromIndex, int toIndex)
对指定 short 型数组的指定范围按数字升序进行排序。

static

<T> void

sort(T[] a, Comparator<? super T> c)
根据指定比较器产生的顺序对指定对象数组进行排序。

static

<T> void

sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
根据指定比较器产生的顺序对指定对象数组的指定范围进行排序。

static String

toString(boolean[] a)
返回指定数组内容的字符串表示形式。

static String

toString(byte[] a)
返回指定数组内容的字符串表示形式。

static String

toString(char[] a)
返回指定数组内容的字符串表示形式。

static String

toString(double[] a)
返回指定数组内容的字符串表示形式。

static String

toString(float[] a)
返回指定数组内容的字符串表示形式。

static String

toString(int[] a)
返回指定数组内容的字符串表示形式。

static String

toString(long[] a)
返回指定数组内容的字符串表示形式。

static String

toString(Object[] a)
返回指定数组内容的字符串表示形式。

static String

toString(short[] a)
返回指定数组内容的字符串表示形式。

Java基本的程序结构设计 数组的更多相关文章

  1. Java基本的程序结构设计 字符类型

    char类型 char是2个字节,和short一样. char用单引号来表示. char可以通过数字来表示,也可以通过字母来表示,也可以通过unicode编码单元来表示,特殊字符还可以通过\+字符来表 ...

  2. Java基本的程序结构设计 大数操作

    大数操作 BigInteger 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操 ...

  3. Java基本的程序结构设计 基本类型的输入输出

    读取输入: java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器. 了解: Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹 ...

  4. Java基本的程序结构设计 控制流程

    控制流程 java的控制流程和C和C++基本一致,只是不能使用goto语句,不过break语句可以带标签,实现从内层循环跳出的目的.标签可以放在for或者while前面.如下: package com ...

  5. Java基本的程序结构设计 整形和浮点型

    整形: int 4字节 short 2字节 long 8字节 byte 1字节 int的大小差不多是20亿. 整形计算 如果两个int进行加减乘除数学运算的时候,最终的结果仍然是int,有可能出现了溢 ...

  6. 《疯狂Java:突破程序员基本功的16课》读书笔记-第一章 数组与内存控制

    很早以前就听过李刚老师的疯狂java系列很不错,所以最近找一本拿来拜读,再此做下读书笔记,促进更好的消化. 使用Java数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并 ...

  7. JAVA 基础编程练习题31 【程序 31 数组逆序】

    31 [程序 31 数组逆序] 题目:将一个数组逆序输出. 程序分析:用第一个与最后一个交换. package cskaoyan; public class cskaoyan31 { @org.jun ...

  8. 程序结构设计理论(Android)

    程序结构设计理论(Android) 作者:邓能财 2019年9月24日 个人简介 姓名:邓能财 年龄:26 毕业学校:东华理工大学 院系:理学院 专业:信息与计算科学 邮箱:2420987186@qq ...

  9. 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制

    Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

随机推荐

  1. xcode dyld: Library not loaded: @rpath/libswiftCore.dylib问题解决

    app安装好了之后就报这个错误,这个时候可以将xcode工程clear一下,删除已经安装好的app,再重新安装即可

  2. PyQt GUI--信号与槽

    目录 目录 前言 系统软件 GUI的主循环 信号与槽 信号的应用 使用控件类的内建信号 自定义信号 带参数的信号 槽的应用 创建槽 信号和槽的连接 最后 前言 PyQt中的信号和槽,就是一个触发和执行 ...

  3. mingw32环境上静态编译 dav1d 0.4.0

    2019-08-05 发布 dav1d 0.4.0 dav1d 'Cheetah', the fast and small AV1 decoder This is the fourth major r ...

  4. Delphi导出Excel的设置操作

    procedure CreatRepSheet(SheetName:String;PageSize,PageLay:Integer); {新建Excel工作簿.进行页面设置} begin {新建Exc ...

  5. playbook部署nginx

    定义playbook的主机组 说明: 1.playbook的主机组和ansible的主机组不一样, 2.playbook的主机组文件必须要和playbook文件在同一个目录下否则会报如下错误: [ro ...

  6. mysql 各数据类型的大小及长度

    数字型 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0, ...

  7. Mysql事务特性

    事务概念 事务可由一条sql或者一组sql组成.事务是访问并更新数据库中各种数据项的一个程序执行单元. 事务会把数据库从一种一致状态转换为另一种一致状态.在数据提交工作时,可以确保要么所有修改都已经保 ...

  8. HTML DOM Document对象 元素对象 属性对象 事件对象

    DOM Document对象 DOM 元素 对象 DOM 属性 对象 DOM 事件 菜鸟教程上 总结挺全的,就不多废话,链接点进去即可.. 后期对经常用到的会在此更新一些总结..... 开学了...自 ...

  9. Unity3D 旋转

    Unity有两种设置物体旋转的方式,一种时用Rotate()函数来旋转,另一种时直接构造目标Quaternion来直接赋予rotation. 好吧,不知到写什么,各种旋转和unity2D差不多.在国内 ...

  10. LeetCode.1051-身高检查器(Height Checker)

    这是小川的第390次更新,第420篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第252题(顺位题号是1051).要求学生按身高递增的顺序站列来拍年度照片. 返回没有站在 ...