java学习之路:10.数组的基本操作(遍历,替换,排序,复制,查询)
1.遍历数组
//第一种就是使用for循环实现遍历
package number;
public class Xuexi {
public static void main(String[] args) {
int b[][]=new int[][] {{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++)
{
for(int c=0;c<b[k].length;c++)
{
System.out.println(b[k][c]);
}
System.out.println();
}
}
}
运行结果如图:
书上介绍除了使用for语句,还可以使用foreach语句,
package number;
public class Xuexi {
public static void main(String[] args) {
int b[][]=new int[][] {{1},{2,3},{4,5,6}};
int i=0;
for(int x[]:b)
{
i++;
int j=0;
for(int e:x)
{
j++;
if(i==b.length&&j==x.length)
{
System.out.print(e);
}
else
{
System.out.print(e+",");
}
}
}
}
}
运行结果:
不知道大家有没有注意到print和println的区别,看第一块代码,会发现它会换行,而第二块代码不会,通过查找得知print+换行=println。
2.填充替换数组元素
数组中的元素定义完成以后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。
(1)fill(int[] a,int value) a:要进行替换的数组 value:要替换的值
(2) fill(int[] a,int fromIndex,int toIndex,int value) fromIndex:第一个填充的索引 toIndex:最后一个填充的索引==(不包括)==
区别在于(1)用于全部替换,(2)用于指定替换。
package number;
import java.util.Arrays;//别忘了添加Attays类
public class Xuexi {
public static void main(String[] args) {
int arr1[]=new int[]{1,2,3,4,5};
Arrays.fill(arr1,8);
for(int i=0;i<arr1.length;i++)
{
System.out.println("全部替换后"+arr1[i]);
}
System.out.println();
int arr2[]=new int[]{1,2,3,4,5};
Arrays.fill(arr2,2,4,1);
for(int i=0;i<arr2.length;i++)
{
System.out.println("指定替换后"+arr2[i]);
}
}
}
运行结果:
3.对数组进行排序
可使用sort()方法进行排序
package number;
import java.util.Arrays;
public class Xuexi {
public static void main(String[] args) {
int arr[]=new int[]{11,27,13,48,45};
Arrays.sort(arr);
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
}
}
运行结果:
4.复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的复制,copyOf()方法复制数组到指定长度,copyOfRange()方法是将指定数组的指定长度复制到新数组中。
copyOf(arr,newlength) arr:要复制的数组 newlength:指复制后的新数组的长度,如果新数组的长度大于数组arr的长度,则用0来填充,如果复制后的数组长度小于arr的长度,则会从数组arr的第一个元素开始截取至满足新数组长度为止。
package number;
import java.util.Arrays;
public class Xuexi {
public static void main(String[] args) {
int arr[]=new int[]{11,27,13,48,45};
int newarr[]=Arrays.copyOf(arr,5);
for(int i=0;i<newarr.length;i++)
{
System.out.println(newarr[i]);
}
}
}
运行结果:
copyOfRange(arr,int formIndex,toIndex) formIndex:指定开始复制数组的索引位置,必须在0到整个数组长度之间。toIndex:要复制范围的最后索引位置,可大于arr的长度,但不包括toIndex索引的元素。
package number;
import java.util.Arrays;
public class Xuexi {
public static void main(String[] args) {
int arr[]=new int[]{11,27,13,48,45};
int newarr[]=Arrays.copyOfRange(arr,0,3);
for(int i=0;i<newarr.length;i++)
{
System.out.println(newarr[i]);
}
}
}
运行结果:
package number;
import java.util.Arrays;
public class Xuexi {
public static void main(String[] args) {
int arr[]=new int[]{11,27,13,48,45};
int newarr[]=Arrays.copyOfRange(arr,0,9); //将3改为9后
for(int i=0;i<newarr.length;i++)
{
System.out.println(newarr[i]);
}
}
}
运行结果:
5.数组查询
(1)binarySearch(Object[],Object key) a:要搜索的数组 key:要搜索的值,如果key在数组中,返回索引(下角标),否则返回-1或-(插入点)。
(2)binarySearch(Object[],int formIndex,int toIndex,Object key) formIndex:指定范围的开始处索引 toIndex:指定范围的结束处索引(不包含)
用法和上面一样,就不再列出该方法的代码。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- react的事件处理为什么要bind this 改变this的指向?
- 没有用到React,为什么我需要import引入React?
- JSON对象和JavaScript对象直接量的区别--不同之处
- (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
- 关于DOM的理解
- 关于闭包函数和递归函数的详细理解
- 新手怎么学JS?JavaScript基础入门
- 纯CSS制作加<div>制作动画版哆啦A梦
- Ubuntu 18.04 安装使用 Supervisor 进程守护并设置开机自动启动
- AWS CLI version 2 在 Windows 下的安装
- Vue事件绑定原理
- 组合
- 用navicat进行身份验证连接出现cannot connect to Mongodb authentication failed
- three.js中的矩阵计算
- ASP.NET Core 3.x Razor视图运行时刷新实时编译