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 ...
随机推荐
- 今天遇到的一个诡异的core和解决 std::sort
其实昨天开发pds,就碰到了core,我还以为是内存不够的问题,或者其他问题. 今天把所有代码挪到了as这里,没想到又出core了. 根据直觉,我就觉得可能是std::sort这边的问题. 上网一搜, ...
- spring boot启动STS 运行报错 java.lang.NoClassDefFoundError: ch/qos/logback/classic/LoggerContext
spring boot启动STS 运行报错 java.lang.NoClassDefFoundError: ch/qos/logback/classic/LoggerContext 学习了: http ...
- linux+apache+mysql+php平台构建及环境配置
1.我使用的centos6.安装时已经选择安装apach.mysql,事实上在运行下列两行命令的时候又对其进行了更新.所以说装的时候能够不安装,免得浪费时间. yum install php-mysq ...
- 三步实现沉浸式状态栏(即状态栏与APP同色)
本篇实现的是沉浸式状态栏.先明白下概念,什么是状态栏?直接上图: 什么是沉浸式状态栏?演示样例图例如以下: ...
- jsp中对话框的实现
<Input type=submit name="g" style="font-size:20px" value="提交" oncli ...
- bzoj1029: [JSOI2007]建筑抢修(堆+贪心)
1029: [JSOI2007]建筑抢修 题目:传送门 题解: 一道以前就做过的水题(找个水题签个到嘛...) 很明显就是一道贪心题,这里我们用一个堆来维护 具体看代码吧,很容易YY所以不讲 代码: ...
- 38.angular的scope作用域
转自:https://www.cnblogs.com/best/tag/Angular/ 1. Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. S ...
- 使用Java操作Redis(一)
Redis是一款基于key-value的数据库服务器,安装完成后我们可以通过redis-cli使用Redis提供的命令完成各种操作.redis-cli实际上就是一款客户端,和redis-server建 ...
- Java SpringMvc Jar包下载及部署方式_转载
本次来记录一下关于 springmvc jar包的下载以及部署 首先登陆 http://repo.spring.io/release/org/springframework/spring/到里面我 ...
- Future模式 总结
future模式解决异步代码的组织(混入)问题: 类似的解决方案: 1.网络响应的block: 2.SDImageview的自组织.代理模式: 3.顶层响应机制的协议机制: