JAVA数组的基本方法
数组的基本方法
数组可以存放多个数据,多个数据类型要统一
数组格式:
格式一:常用写法
数组类型[] 数组名称 = new 数据类型[数组长度];
格式二:蛋疼写法
数组类型[] 数组名称;
数组名称 = new 数组类型[数组长度];
静态初始化数组格式:
格式一:常用写法
数组类型[] 数组名称 = new 数据类型[]{数值,数值,数值};
格式二:蛋疼写法
数组类型[] 数组名称;
数组名称 = new 数组类型[]{数值,数值,数值};
快速初始化数组格式(静态初始化数组的省略写法):
数组类型[] 数组名称 = {数值,数值,数值,数值,数值,数值,数值};
当你打印数组对象时返回的对象意思如下:
[代表当前数据是数组 + 数据类型 + @数字代表的是地址值(的哈希值)
数组动态初始化的时候默认会被赋予一个默认值
整数数组默认赋予0
浮点数组默认赋予0.0
字符串或其他引用数组类型默认赋予null
布尔数组默认赋予false
常见报错信息java.lang.ArrayIndexOutOfBoundsException
表示数组越界也就是超出了范围
来看下面的实例:
import java.util.Arrays;
public class ListFunc {
public static void main(String[] args){
//动态数组初始化
int[] array1 = new int[3];
float[] array2 = new float[3];
String[] array3;
array3 = new String[3];
boolean[] array4 = new boolean[1];
System.out.println("array1="+array1[0]+" "+array1[1]+" "+array1[2]);
System.out.println("array2="+array2[0]+" "+array2[1]+" "+array2[2]);
System.out.println("array3="+array3[0]+" "+array3[1]+" "+array3[2]);
System.out.println("array4="+array4[0]);
//静态数组初始化
int[] list1 = new int[]{1,2,3};
float[] list2 = new float[]{1.0f,2.0f,3.0f};
String[] list3;
list3 = new String[]{"abc","bcd","def"};
System.out.println("list1="+list1[0]+" "+list1[1]+" "+list1[2]);
System.out.println("list2="+list2[0]+" "+list2[1]+" "+list2[2]);
System.out.println("list3="+list3[0]+" "+list3[1]+" "+list3[2]);
//快速数组初始化并统计长度
int[] lists = {1,2,3,4,5,7,8,8,9,9,0,0,123,21,32,43,534,20};
System.out.println("lists映射地址="+lists);
System.out.println("lists的长度="+lists.length);
int[] lists2 = lists.clone();
//对已有的数据对象克隆并生成了新的地址空间
System.out.println("clone映射地址="+lists.clone());
System.out.println("克隆数组方法="+Arrays.toString(lists2));
System.out.println("hashCode="+lists.hashCode()); //生成对应的哈希值
//Arrays.toString方法直接可以转换数组快速变成可阅读模式
// 使用此方法前需要import java.util.Arrays;
int[] array5 = {1,2,3,4,5,6};
String str = Arrays.toString(array5);
System.out.println("array5="+str);
String[] list5 = {"a","b","c"};
String[] list6 = {"a","b","c"};
//判断两个数组是否相等/相同
System.out.println("Arrays-equals="+Arrays.equals(list5,list6));
//生成哈希值
System.out.println("Arrays-hashCode="+Arrays.hashCode(list6));
//搜索数组的对象的下标位置(字符串不能用)
System.out.println("Arrays-binarySearch="+Arrays.binarySearch(array5,2));
//从数组的首位截取对应长度生成新数组
System.out.println("Arrays-copyOf="+Arrays.toString(Arrays.copyOf(array5,2)));
//从数组指定范围截取生成新数组
System.out.println("Arrays-copyOfRange="+Arrays.toString(Arrays.copyOfRange(array5,4,6)));
int[] array6 = {6,7,8,5,4,3,2,1};
int[] array7 = array6.clone();
//对数组从小到大排序
Arrays.sort(array6);
System.out.println("Arrays-sort="+Arrays.toString(array6));
//同上方法一样也是排序
Arrays.parallelSort(array7);
System.out.println("Arrays-parallelSort="+Arrays.toString(array7));
//对数组全部填充定义的值
Arrays.fill(array6,10);
System.out.println("Arrays-fill="+Arrays.toString(array6));
//对下标的数利用生成器生成对应新的序列
int[] array9 = new int[10];
Arrays.setAll(array9,x->x*2);
System.out.println("Arrays-setAll="+Arrays.toString(array9));
//可使用表达式循环输出
int[] array8 = {8,88,888};
Arrays.stream(array8).forEach(i->System.out.println("stream-forEach="+i));
//判断列表是否为空
System.out.println("Arrays-asList-isEmpty="+Arrays.asList(list5).isEmpty());
}
}
对应输出结果如下图:

JAVA数组的基本方法的更多相关文章
- Java数组定义及方法
数组的描述 在数组中每个元素都具有相同的数据类型,是有序数据的集合.通俗的说数组就相当于一个容器.数组分为一维数组.二维数组和多维数组. 数组的特点: 数组类型是从抽象基类 Array 派生的引用 ...
- JAVA数组的toString()方法不能直接输出数组内容?
问题描述:我定义了一个类,类名是Job,当我输出Job.toString()是可以按我重载的toString方法输出的,但是如果输出jobs[]这个数组时,只会输出[Lmodel.Job;@45e22 ...
- java 数组中的方法
//要import java.util.Arrays: fill(int[] a,int value);//对a数组进行全部用value填充 fill(int[] a,int fromIndex,in ...
- Java数组List换算方法
1.List转换到一个数组.(这里List它是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...
- Java数组去重的方法
//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤 public static Object[] oneClear(Object[] arr){ Set set = new Has ...
- java 数组遍历(方法内部的代码)
//数组遍历(依次输出数组中的每一个元素)二维数组: int[][] arr={{1,2},{3,4,5},{6,7}}; for(int i=0;i<arr.length;i++){ for( ...
- java - 数组与String的length方法问题
java数组没有length()方法,java数组有length属性: String有length()方法.
- java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...
- JAVA中文件与Byte数组相互转换的方法
JAVA中文件与Byte数组相互转换的方法,如下: public class FileUtil { //将文件转换成Byte数组 public static byte[] getBytesByFile ...
随机推荐
- ScrollView反弹效果的实现
发现非常多APP的界面都能够滑动,QQ.微信等等,自己琢磨了下.效果例如以下: 代码:ScrollView package com.wsj.wsjdemo; import android.conten ...
- POJ 2570 Fiber Network(最短路 二进制处理)
题目翻译 一些公司决定搭建一个更快的网络.称为"光纤网". 他们已经在全世界建立了很多网站.这 些网站的作用类似于路由器.不幸的是,这些公司在关于网站之间的接线问题上存在争论,这样 ...
- 从fork面试题開始的思考
一.文章来由 还是按照惯例来说一下文章为什么来的.晚上好基友在网上刷面试题,看到一个有趣的题目,于是開始了研究,就有了这篇文章. 二.进入正题 题目例如以下: #include <stdio.h ...
- .NET 框架简单介绍
初学.NET肯定会有一系列的疑问,比方(下面为自己的疑问): 1) 何为. NET框架.它都包括哪些东西? 2) 程序集是什么.它是怎样在CLR(通用语言执行时)中执行的? 3) C#与VB.NET同 ...
- Java - 多线程Callable、Executors、Future
http://blog.csdn.net/pipisorry/article/details/44341579 Introduction Callable接口代表一段能够调用并返回结果的代码; Fut ...
- js数组的操作 Full
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- Busy waiting
In computer systems organization or operating systems, "busy waiting" refers to a process ...
- Input Team
The Chromium Input team (aka input-dev) is a web platform team focused on making touch (P1) and othe ...
- 2019 前端面试题汇总(主要为 Vue)
原文链接:点我 由于我的技术栈主要为Vue,所以大部分题目都是Vue开发相关的. 1. 谈谈你对MVVM开发模式的理解 MVVM分为Model.View.ViewModel三者. Model:代表数据 ...
- CF981C(菊花图)
题目描述 RAMESS知道很多关于树的问题(无循环的无向连通图)! 他创建了一个新的有用的树的划分,但他不知道如何构造它,所以他请求你的帮助! 划分是从树上的边中分裂出一些简单的路径,使得每个两条路径 ...