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 ...
随机推荐
- jsp-include 写法
被包含的页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...
- <转>Openstack ceilometer 宿主机监控模块扩展
<Openstack ceilometer监控项扩展>( http://eccp.csdb.cn/blog/?p=352 )主要介绍了对虚拟机监控项扩展, 比較简单.怎样在ceilomet ...
- 【iOS开发-47】怎样下载iOS 7.1 Simulator 以及iOS 8离线的Documentation这些文件?
(1)最官方的解决的方法 在Xcode6里面提供下载. 依照下图找到下载就可以. 一般建议把以下的自己主动检查更新和下载的框框勾起来,这样它会帮我们自己主动下载. watermark/2/text/a ...
- 8.6 First_value和Last_value
8.6 First_value和Last_value正在更新内容.请稍后
- Android开发:getViewById返回null的原因定位
近期在研究开发一些基于Android的App,遇到了一些问题.当中一个比較关键的是在Activity中的onCreate()方法中获取Button对象.代码大概例如以下: private Button ...
- QT跟VC++结合来进行插件的验证机制(遍历vtable,保证虚函数的个数一致,也可使用Q_INVOKABLE宏定义)
由于最近公司要开发一个以C++插件机制为主的,主要有一个问题就是C++的二进制兼容性的问题.一旦类使用虚函数,只要随便改动下增删查改下头文件的虚函数,就会导致程序在跑的时候进行乱跳,因为这个时候exe ...
- LintCode-赋值运算符重载
实现赋值运算符重载函数.确保: 新的数据可准确地被复制 旧的数据可准确地删除/释放 可进行 A = B = C 赋值 您在真实的面试中是否遇到过这个题? Yes 例子 假设进行 A = B 赋值.则 ...
- Vue Syntax Highlight
Vue Syntax Highlight https://github.com/vuejs/vue-syntax-highlight
- [poj 2912] Rochambeau 解题报告 (带权并查集)
题目链接:http://poj.org/problem?id=2912 题目: 题目大意: n个人进行m轮剪刀石头布游戏(0<n<=500,0<=m<=2000) 接下来m行形 ...
- php7安装memcache 和 memcached 扩展
php7安装memcache 和 memcached 扩展 标签(空格分隔): php memcache和memcached区别 memcache:http://pecl.php.net/packag ...