声明数组:

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. 十二:jinja2模板中使用url_for

    在页面中,有点击跳转到另一个地址的时候,可以使用url_for来指定要跳转的视图函数:{{ url_for('view_function') }} 如果该视图需要接收参数

  2. MySQL 数据库架构

    1 架构 master-slave性能,qps,tps,cpu,disk,memory,network,raid卡,fashion卡, 并发量:同一时刻需要db处理 连接量: 大表:1000w行或者表 ...

  3. tensorflow各个版本的CUDA以及Cudnn版本对应关系

    概述,需要注意以下几个问题: (1)NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念哦!CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运 ...

  4. 爬虫五之Selenium

    Selenium 自动化测试工具,支持多种浏览器: 爬虫中主要用来解决JavaScript渲染问题. 用法详解 基本使用 声明浏览器对象 from selenium import webdriver ...

  5. Windows Server 2008 R2忘记管理员密码后的解决方法

    在日常的工作中,对于一个网络管理员来讲最悲哀的事情莫过于在没有备用管理员账户和密码恢复盘的情况下遗忘了本地管理员账户密码.在早期的系统中,遇到这种事情可以使用目前国内的很多Windows PE光盘来解 ...

  6. USACO3.3 Home on the Range【思维】

    做完之后看到题解里面很多bfs,dfs,甚至还有dp? 写了一个不知道怎么称呼它的方法,暂且叫他乱搞吧. 用数组a[][]预处理出以当前行作为最底层,这一列从上往下的最长的1的长度. 如果这个格子为0 ...

  7. 去掉有序数组中的重复元素 c/c++

    去掉有序数组中的重复元素: int RemoveDuplates(int A[], int nCnt) { ; ; , j = ; i < nCnt && j < nCnt ...

  8. redhat java配置

    原来的java版本为1.4 whereis java后 将java原来的目录全部删除 拿来新的1.8的安装好的java包 vi /etc/profile插入 JAVA_HOME=/usr/local/ ...

  9. 运维日常之机房浪潮服务器硬盘红灯亮起,服务器一直响,raid磁盘红色。。。故障解决方法

    按Ctrl+H进入到WebBIOS内,看见的错误如下所示: 错误是PDMissing,只不过维护的IBM服务器错误的磁盘不是第一块,而是第三块而已,不过坏哪块硬盘没有影响,重要的是错误的原因.这种错误 ...

  10. python nonlocal 的具体原理

    很多文章都大概列了下nonlocal的具体用法,比如看到几篇文章写的 “nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量” 看完以后我感觉自己是懂了,但光从这句话来说还没完全理解它 ...