Java基本的程序结构设计 数组
声明数组:
int[] a;
int a[];
两种方式。一般选择第一种,比较一目了然。
初始化,必须指定长度:
int[] a = new int[10];
int[] a = {1,2,3};
初始化:
- package com.zjf;
- import java.util.Arrays;
- import com.zjf.spring.mybatis.model.Person;
- public class Test {
- public static void main(String[] args) {
- //定义数组
- int[] a = new int[3];
- //默认初始化 打印查看为0
- System.out.println(Arrays.toString(a));
- //也可以存储对象
- Person[] p = new Person[2];
- //默认初始化为null
- System.out.println(Arrays.toString(p));
- }
- }
结果:
[0, 0, 0]
[null, null]
数组拷贝
两种方式。
- package com.zjf;
- import java.util.Arrays;
- public class Test {
- public static void main(String[] args) {
- int[] a = {0,1,2,3,4,5,6,7,8,9};
- int[] b = Arrays.copyOf(a, a.length);
- int[] c = new int[a.length];
- System.arraycopy(a, 0, c, 0, a.length);
- System.out.println(Arrays.toString(b));
- System.out.println(Arrays.toString(c));
- }
- }
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
数组排序:
- package com.zjf;
- import java.util.Arrays;
- import com.zjf.spring.mybatis.model.Person;
- public class Test {
- public static void main(String[] args) {
- int[] a = {0,6,2,8,4,5,1,7,3,9};
- Arrays.sort(a);
- System.out.println(Arrays.toString(a));
- Person p1 = new Person(2,"zjf",29,"beiing");
- Person p2 = new Person(1,"xhj",29,"beiing");
- Person[] p = {p1,p2};
- Arrays.sort(p);
- System.out.println(Arrays.toString(p));
- }
- }
结果:
[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)
- package com.zjf;
- import java.util.Arrays;
- import java.util.Comparator;
- import com.zjf.spring.mybatis.model.Person;
- public class Test {
- public static void main(String[] args) {
- int[] a = { 0, 6, 2, 8, 4, 5, 1, 7, 3, 9 };
- Arrays.sort(a);
- System.out.println(Arrays.toString(a));
- Person p1 = new Person(2, "zjf", 29, "beiing");
- Person p2 = new Person(1, "xhj", 29, "beiing");
- Person[] p = { p1, p2 };
- Arrays.sort(p, new Comparator<Person>() {
- public int compare(Person o1, Person o2) {
- return o1.getId().compareTo(o2.getId());
- }
- });
- System.out.println(Arrays.toString(p));
- }
- }
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[id:1,name:xhj, id:2,name:zjf]
注:Arrays.sort使用的是快速排序算法。
Arrays的API:
|
方法摘要 |
||
|
static
|
asList(T... a) |
|
|
static int |
binarySearch(byte[] a, byte key) |
|
|
static int |
binarySearch(char[] a, char key) |
|
|
static int |
binarySearch(double[] a, double key) |
|
|
static int |
binarySearch(float[] a, float key) |
|
|
static int |
binarySearch(int[] a, int key) |
|
|
static int |
binarySearch(long[] a, long key) |
|
|
static int |
binarySearch(Object[] a, Object key) |
|
|
static int |
binarySearch(short[] a, short key) |
|
|
static
|
binarySearch(T[] a, T key, Comparator<? super T> c) |
|
|
static boolean |
deepEquals(Object[] a1, Object[] a2) |
|
|
static int |
deepHashCode(Object[] a) |
|
|
static String |
deepToString(Object[] a) |
|
|
static boolean |
equals(boolean[] a, boolean[] a2) |
|
|
static boolean |
equals(byte[] a, byte[] a2) |
|
|
static boolean |
equals(char[] a, char[] a2) |
|
|
static boolean |
equals(double[] a, double[] a2) |
|
|
static boolean |
equals(float[] a, float[] a2) |
|
|
static boolean |
equals(int[] a, int[] a2) |
|
|
static boolean |
equals(long[] a, long[] a2) |
|
|
static boolean |
equals(Object[] a, Object[] a2) |
|
|
static boolean |
equals(short[] a, short[] a2) |
|
|
static void |
fill(boolean[] a, boolean val) |
|
|
static void |
fill(boolean[] a, int fromIndex, int toIndex, boolean val) |
|
|
static void |
fill(byte[] a, byte val) |
|
|
static void |
fill(byte[] a, int fromIndex, int toIndex, byte val) |
|
|
static void |
fill(char[] a, char val) |
|
|
static void |
fill(char[] a, int fromIndex, int toIndex, char val) |
|
|
static void |
fill(double[] a, double val) |
|
|
static void |
fill(double[] a, int fromIndex, int toIndex, double val) |
|
|
static void |
fill(float[] a, float val) |
|
|
static void |
fill(float[] a, int fromIndex, int toIndex, float val) |
|
|
static void |
fill(int[] a, int val) |
|
|
static void |
fill(int[] a, int fromIndex, int toIndex, int val) |
|
|
static void |
fill(long[] a, int fromIndex, int toIndex, long val) |
|
|
static void |
fill(long[] a, long val) |
|
|
static void |
fill(Object[] a, int fromIndex, int toIndex, Object val) |
|
|
static void |
fill(Object[] a, Object val) |
|
|
static void |
fill(short[] a, int fromIndex, int toIndex, short val) |
|
|
static void |
fill(short[] a, short val) |
|
|
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 |
||
|
static int |
hashCode(short[] a) |
|
|
static void |
sort(byte[] a) |
|
|
static void |
sort(byte[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(char[] a) |
|
|
static void |
sort(char[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(double[] a) |
|
|
static void |
sort(double[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(float[] a) |
|
|
static void |
sort(float[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(int[] a) |
|
|
static void |
sort(int[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(long[] a) |
|
|
static void |
sort(long[] a, int fromIndex, int toIndex) |
|
|
static void |
||
|
static void |
sort(Object[] a, int fromIndex, int toIndex) |
|
|
static void |
sort(short[] a) |
|
|
static void |
sort(short[] a, int fromIndex, int toIndex) |
|
|
static
|
sort(T[] a, Comparator<? super T> c) |
|
|
static
|
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 |
||
|
static String |
toString(short[] a) |
|
Java基本的程序结构设计 数组的更多相关文章
- Java基本的程序结构设计 字符类型
char类型 char是2个字节,和short一样. char用单引号来表示. char可以通过数字来表示,也可以通过字母来表示,也可以通过unicode编码单元来表示,特殊字符还可以通过\+字符来表 ...
- Java基本的程序结构设计 大数操作
大数操作 BigInteger 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操 ...
- Java基本的程序结构设计 基本类型的输入输出
读取输入: java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器. 了解: Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹 ...
- Java基本的程序结构设计 控制流程
控制流程 java的控制流程和C和C++基本一致,只是不能使用goto语句,不过break语句可以带标签,实现从内层循环跳出的目的.标签可以放在for或者while前面.如下: package com ...
- Java基本的程序结构设计 整形和浮点型
整形: int 4字节 short 2字节 long 8字节 byte 1字节 int的大小差不多是20亿. 整形计算 如果两个int进行加减乘除数学运算的时候,最终的结果仍然是int,有可能出现了溢 ...
- 《疯狂Java:突破程序员基本功的16课》读书笔记-第一章 数组与内存控制
很早以前就听过李刚老师的疯狂java系列很不错,所以最近找一本拿来拜读,再此做下读书笔记,促进更好的消化. 使用Java数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并 ...
- JAVA 基础编程练习题31 【程序 31 数组逆序】
31 [程序 31 数组逆序] 题目:将一个数组逆序输出. 程序分析:用第一个与最后一个交换. package cskaoyan; public class cskaoyan31 { @org.jun ...
- 程序结构设计理论(Android)
程序结构设计理论(Android) 作者:邓能财 2019年9月24日 个人简介 姓名:邓能财 年龄:26 毕业学校:东华理工大学 院系:理学院 专业:信息与计算科学 邮箱:2420987186@qq ...
- 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制
Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...
随机推荐
- Ruby小白入门笔记之<Rails项目目录结构>
一 .流程分析 二.目录分析 DemoRails app (核心) assets (web前端所需文件) images (图片) javascripts (JS代码) styleshe ...
- [flask]jina2处理表单--实现搜索功能
思路: 获取查询关键字 查询数据库,获得查询结果 将查询结果返回模板文件 forms.py from flask_wtf import FlaskForm from wtforms import S ...
- 拉取代码产生冲突 && 切换分支
1.拉取代码产生冲突 项目中用的主要是 IDEA 编辑器,拉取代码时产生冲突的时候,就先 add + commit 一下,然后再拉取代码,这样子就不冲突了. 拉取过后再push一次. 2.切换一个新增 ...
- MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
背景说明 需求:MySQL树形结构, 根据指定的节点,获取其所在全路径节点序列. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取全路径节点序列. 2.直接自定义My ...
- Docker面试题(二)
什么是虚拟化? 虚拟化允许您在相同的硬件上运行两个完全不同的操作系统.每个客户操作系统都经历了引导,加载内核等所有过程.您可以拥有非常严格的安全性,例如,客户操作系统无法完全访问主机操作系统或其他客户 ...
- 华为HCNA乱学Round 3:华为基础
- 【VS开发】【C++语言】reshuffle的容器实现算法random_shuffle()的使用
假设你需要指定范围内的随机数,传统的方法是使用ANSI C的函数random(),然后格式化结果以便结果是落在指定的范围内.但是,使用这个方法至少有两个缺点.首先,做格式化时,结果常常是扭曲的,所以得 ...
- qt 两种按钮点击事件应用
1.传统connect 例如: connect(ui->findPushBtn,SIGNAL(clicked()),this,SLOT(find())); 参数1:事件UI 参数2:点击系统函数 ...
- 【2019CSP-S游记】咕了好久了撒
对,证书已经发下来了,我才想起来写游记(虽然我个蒟蒻明明就是在写反思) 终于和父母商议好了以后怎么办,顺带找了一下班主任,在机房的电脑敲出来的(我来找教练,然后完全没找着,淦) 79分,众所周知CCF ...
- AtCoder Beginner Contest 072
这应该是我第二次打AtCoder, 题目其实并不难,就是自己经验不足想复杂了,再加上自己很笨,愣是做了97分钟才全做出来(最后三分钟,有点小激动..),看着前面大牛半个小时都搞完了,真心膜拜一下,代码 ...