Java由浅入深细数数组的操作下
目录
- 1.二维数组的存储
- 2.二维数组的定义和初始化
- 3.打印二维数组
- 4.不规则二维数组
- 5.Arrays中常用的方法
上一篇介绍完一维数组后,我们来看二维数组
1.二维数组的存储
在C语言中我们说过:二维数组可以看成是特殊的一位数组,比如int arr[2][3],arr可以看成由两个元素组成,即arr[0]和arr[1],arr[0]和arr[1]各自又有三个元素,这句话在Java中同样适用,一维数组中arr存储的是一个地址,二维数组中则是多个地址,以上面的arr数组为例,其在JVM中的存储如下:
2.二维数组的定义和初始化
和一维数组类似,二维数组的定义和初始化同样有三种:
int[][] arr1={{1,2,3},{4,5,6}}; int[][] arr2=new int[][] {{1,2,3},{4,5,6}}; int[][] arr3=new int[2][3]; //同样数组元素的值为0
3.打印二维数组
使用的依旧是在一维数组中使用的方法
- 嵌套for循环
需要注意的是,此时arr.length的值表示的是行数,arr[i].length的值是第i行的数组有多少个元素,即列数
- foreach
foreach语句依旧可以使用,同样是嵌套的foreach,使用方法如下图:
- Arrays.deepToString()
Arrays.toString()只能作用于一维数组,二维数组打印出来的是处理后的地址
所以使用 Arrays.deepToString()将二维数组转换为字符串
4.不规则二维数组
Java中的二维数组每一行都可以单独指定列数,具体操作如下:
5.Arrays中常用的方法
- Arrays包中有很多操作数组的方法,在这对其常用的一些方法进行总结
- Arrays.toString():将一维数组内容转换成字符串
- Arrays.deepToString():将二维数组内容转换成字符串
- Arrays.copyOf():拷贝数组,有两个参数,分别是要拷贝的数组的名称和拷贝的长度,返回值是数组
- Arrays.copyOfRange():拷贝数组,可设定起始和结束位置,两端取值是左闭右开
- Arrays.binarySearch():数组中二分查找搜索指定值,找到返回值的下标,没有则返回负数
- Arrays.fill():填充数组内容,可以选择局部填充或全部填充Arrays.sort():对数组进行排序,排序方式是升序
数组内容就到此结束,完
相关推荐
-
Java使用反射操作数组示例
本文实例讲述了Java使用反射操作数组.分享给大家供大家参考,具体如下: 一 实战 1 代码 import java.lang.reflect.*; public class ArrayTest1 { public static void main(String args[]) { try { // 创建一个元素类型为String ,长度为10的数组 Object arr = Array.newInstance(String.class, 10); // 依次为arr数组中index为5.6的元
-
9个java数组常用操作实例
数组的特点: 数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素.根据数组的维度,可以将其分为一维数组.二维数组和多维数组等. 总的来说,数组具有以下特点: 数组可以是一维数组.二维数组或多维数组. 数值数组元素的默认值为 0,而引用元素的默认值为 null. 交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null.交错数组元素的维度和大小可以不同. 数组的索引从 0 开始,如果数组有 n
-
Java实现的数组去重与排序操作详解
本文实例讲述了Java实现的数组去重与排序操作.分享给大家供大家参考,具体如下: 这里演示Java实现数组去重.排序操作 文中的示例源码编写基于Jdk1.6+.junit4.8.2 java.util.Arrays.sort() 支持对int[],long[],short[],char[],byte[],float[],double[],Object[]进行排序 参考示例代码片段如下 // 声明int 数组,并初始化 int[] intArry = {5,4,7,8,2,0,1,9,3,6,10
-
java数组的初始化及操作详解
数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作.数组本身属于引用数据类型,那么既然是引
-
java数组及arrays类对数组的操作实例
数组的初始化有两种方式 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度.如: int[] a1 = new int[] {1,2,3,4}; 动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值.如: int[] a = new int[5]; 写一个类测试一下 package chenlizhi; import java.util.Arrays; public class TestArrays { public static void main(S
-
JAVA复制数组和重置数组大小操作
翻看印象笔记发现自己整理过arraycopy()这样一个方法,码字放到这里: System.arraycopy()是一个静态方法,用来实现重置数组操作 数组复制方法调用和参数列表: System.arraycopy(src, srcPos, dest, destPos, length); src:原数组 srcPos:原数组的开始位置 dest:目标数组 destPos:目的数组的开始位置 length:复制长度 数组复制代码示例: //originalArray 数组全部复制到targetAr
-
JAVA对象和字节数组互转操作
0x01 创建要转换的类和主函数 注意这里一定要实现序列化 package day1; import java.io.Serializable; public class Test360 implements Serializable { @Override public String toString() { return "Test360{" + "name='" + name + '\'' + '}'; } String name="test&quo
-
Java编程中二维数组的初始化和基本操作实例
Java二维数组的声明和初始化 1.二维数组可以看成以数组为元素的数组: 2.Java中二维数组的声明和初始化应按照从高维到低维的顺序进行. 实例: 静态初始化: Array2.java: 程序代码 public class Array2 { public static void main(String args[]) { int a[][] = {{1,2},{3,4,5,6},{7,8,9}} ; for(int i=0 ; i <a.length ; i++) { for(int j=0
-
Java自定义数组列表的实现操作
主要目的: 解决ArrayList 类不能改变大小的问题,主要实现数组列表动态调整大小. 1.数组类型如何选择?由于我们不清楚数组中具体存入什么类型的数据, 我们可以声明一个对象Object [ ] ,这样,数组列表就可以存储任何类型的数据了. 2.泛型<> :如果定义的一个类或接口有一个或多个类型变量,则可以使用泛型. ArrayList<String>本身就是泛型,各种类型的变量都可以组装成对应的List,而不必针对每个类型分别实现一个构建ArrayList的类. 泛型字母所代
-
Java由浅入深细数数组的操作下
目录 1.二维数组的存储 2.二维数组的定义和初始化 3.打印二维数组 4.不规则二维数组 5.Arrays中常用的方法 上一篇介绍完一维数组后,我们来看二维数组 1.二维数组的存储 在C语言中我们说过:二维数组可以看成是特殊的一位数组,比如int arr[2][3],arr可以看成由两个元素组成,即arr[0]和arr[1],arr[0]和arr[1]各自又有三个元素,这句话在Java中同样适用,一维数组中arr存储的是一个地址,二维数组中则是多个地址,以上面的arr数组为例,其在JVM中的存
-
Java由浅入深细数数组的操作
目录 1.JVM的内存分布 2.引用类型变量的特点 3.一维数组的使用 3.1定义和初始化 3.2数组的访问 3.3打印数组所有的元素 3.4数组的拷贝 3.5作为参数和返回值 本篇介绍一维数组以及相关操作,二维数组放在下一篇 1.JVM的内存分布 Java的代码是运行在JVM上的,为了方便管理,对所使用的内存按照功能的不同进行了划分,这不是本篇重点,只做简单的介绍: Java虚拟栈:局部变量在这里开辟空间 Java本地方法栈:运行一些由C/C++编写的程序 堆:对象在这里存储,且开辟后的空间使
-
Java自定义长度可变数组的操作
我们都知道数组是线性的.类型固定.内存地址连续.定长的,主要是数组一旦被定义,那么它的长度也就定下来了,只能添加有限的数据.而长度可变的数组是要将这个长度打破,实现数组数据无限增加 那么定义长度可变的数组就可以用两个数组来实现数组长度的变化.为了避免每次增加数据或删除数据时都要重新开辟空间,我先设定原数组为固定长,在当数组放满时,一次增加一定的长度,这样 节省了开辟空间的时间 因为数组里的数据类型是不确定的,所以用泛型比较好 public class MyList<E> { private i
-
java旋转二维数组实例
本文实例讲述了java旋转二维数组的操作,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package test; /* * 1 2 3 4 5 * 16 17 18 19 6 * 15 24 25 20 7 * 14 23 22 21 8 * 13 12 11 10 9 * * 写一
-
Java细数IO流底层原理到方法使用
目录 一.什么是IO流 二.常用的文件操作 三.获取文件的相关信息 四.目录的操作和文件删除 五.IO流体系图-常用的类 六.FileInputStream常用方法 七.FileOutputStream常用方法 八.FileReader常用方法 九.FileWriter常用方法 一.什么是IO流 输入流和输出流. 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径 二.常用的文件操作 学习目标:创建文件对象相关构造器和方法 new File(Str
-
java基础之数组常用操作总结(必看篇)
常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 public class TestArray{ public static void main(String[] args){ int[] arr={23,45,234,576,34,87,34,12,67}; int max=arr[0]; int min=arr[0]; for(int i=0;i<arr.leng
-
Java由浅入深通关抽象类与接口下
目录 1.对象的比较 1.1 Comparable<T> 1.2 Comparator<T> 2.克隆对象 2.1 Cloneable 2.2 深拷贝和浅拷贝 3.Object类 3.1 equals 3.2 toString 本篇介绍在对对象进行比较和克隆操作的时候会使用的接口,然后介绍一个类:Object 在Java中Object类默认是所有类的父类,里面有一些常用的方法会介绍 1.对象的比较 两个对象要进行比较之前,我们首先需要确定依据什么来进行比较,对象中的成员变量那么多,
-
细数Java接口的概念、分类及与抽象类的区别
Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 一.接口含义: 1.Java接口,Java语言中存在的结构,有特定的语法和结构: 2.一个类所具有的方法的特征集合,是一种逻辑上的抽象. 前者叫做"Java接口",后者叫做"接口". Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所
-
Java C++题解leetcode1441用栈操作构建数组示例
目录 题目要求 思路:模拟[双指针] Java C++ Rust 题目要求 思路:模拟[双指针] 按题意模拟即可: 一个指针cur依次指向target中的每个元素,另一个指针i依次指向1∼n的数字: 对i所指向的每个数字进行Push操作,然后判断当前数字与target[cur]是否相等: 相等则判断下一个数字,同时将cur指向下一个元素: 否则需进行Pop操作. 过程中需注意cur的越界,当其越界则target构造完毕. Java class Solution { public List<Str
随机推荐
- MySQL字符集的基本类型与统一字符集分析
- windows系统下简单nodejs安装及环境配置
- 详解Spring学习总结——Spring实现AOP的多种方式
- Mac Charles抓包工具详细介绍
- python使用正则搜索字符串或文件中的浮点数代码实例
- JS字符串的切分用法实例
- thinkphp中AJAX返回ajaxReturn()方法分析
- MySQL如何导入csv格式数据文件解决方案
- PHP树-不需要递归的实现方法
- 浅谈java中BigDecimal的equals与compareTo的区别
- jQuery实现的简单悬浮层功能完整实例
- jquery插件pagination实现无刷新ajax分页
- HTML长文本截取含有HTML代码同样适用的两种方法
- 对联广告 flash版
- JS对象转换为Jquery对象示例
- php使用gd2绘制基本图形示例(直线、圆、正方形)
- Apache Commons DbUtils工具包使用介绍
- asp下经常用到的代码
- vue注册组件的几种方式总结
- 百度Java面试题 前200页精选(上)