博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java(C#)基础差异-数组
阅读量:4961 次
发布时间:2019-06-12

本文共 3048 字,大约阅读时间需要 10 分钟。

1、填充数组

Java

数组填充替换方法Arrays.fill()

举例如下:

import java.util.Arrays;public class FillDemo {    public static void main(String[] args) {        int arr[] = new int[5];        // 使用同一个值对数组进行填充        Arrays.fill(arr, 8);        for (int i = 0; i < arr.length; i++) {            System.out.println("第" + i + "个元素是:" + arr[i]);        }    }}

运行结果如下:

 

2、复制数组

Java 

数组复制使用方法Arrays.copyOf以及Arrays.copyOfRange

(1)Arrays.copyOf

语法如下:

copyOf(arr,int newlength)

说一下newlength:int型常量,指复制后的新数组的长度。如果新数组的长度大于数组arr的长度,则用0填充(根据复制数组的类型来决定填充的值,整型数组用0填充,char型数组则使用null来填充);如果复制后的数组长度小于数组arr的长度,则会从数组arr的第一个元素开始截取至满足新数组长度为止。

举例如下:

import java.util.Arrays;public class CopyDemo {    public static void main(String[] args) {        int arr[] = new int[] { 23, 43, 12 };        int newarr[] = Arrays.copyOf(arr, 5);        for (int i = 0; i < newarr.length; i++) {            System.out.println(newarr[i]);        }    }}

运行结果如下:

(2)Arrays.copyOfRange

语法如下:

copyOfRange(arr,int fromIndex,int toIndex)

说一说后两个参数:

fromIndex:指定开始复制数组的索引位置。fromIndex必须在0至整个数组的长度之间。新数组包括索引是formIndex的元素。

toIndex:要复制范围的最后索引位置。可大于数组arr的长度。新数组不包括索引是toIndex的元素。

举例如下:

import java.util.Arrays;public class CopyOfRangeDemo {    public static void main(String[] args) {        int arr[] = new int[] { 23, 42, 12, 84, 10 };        int newarr[] = Arrays.copyOfRange(arr, 0, 8);        for (int i = 0; i < newarr.length; i++) {            System.out.println(newarr[i]);        }    }}

运行结果如下:

3、数组查询

Java

binarySearch()

此法为二分搜索法,故查询前需要用sort()方法将数组排序,如果数组没有排序,则结果是不确定的,另外如果数组中含有多个指定值的元素,则无法保证找到的是哪一个。

binarySearch()方法的返回值为:如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始;如果没有找到关键字,返回值为负的插入点值,所谓插入点值就是第一个比关键字

大的元素在数组中的位置索引,而且这个位置索引从1开始。

binarySearch(object[ ], object key);

binarySearch(object[ ], int fromIndex, int endIndex, object key);

举例如下:

public class SearchDemo {    public static void main(String[] args) {        int[] b = new int[] { 4, 25, 10, 95, 06, 21 };        System.out.println("原数组为:");        for (int dim1 : b) {            System.out.print("" + dim1 + " ");        }        Arrays.sort(b);        System.out.println("排序后为:");        for (int x : b) {            System.out.print(x + " ");        }        System.out.println();        int index = Arrays.binarySearch(b, 2);        System.out.println("关键字2的返回值为:" + index);        index = Arrays.binarySearch(b, 20);        System.out.println("关键字20的返回值为:" + index);        index = Arrays.binarySearch(b, 30);        System.out.println("关键字30的返回值为:" + index);        index = Arrays.binarySearch(b, 100);        System.out.println("关键字100的返回值为:" + index);        index = Arrays.binarySearch(b, 10);        System.out.println("关键字10的返回值为:" + index);    }}

运行结果如下:

 

实例解析:

可以看到 关键字2并没有在数组中,而且2比数组中的任何一个元素都小,所以其插入点的值应为元素4的位置也就是1(没有找到关键字从1开始

关键字20也不在数组中,数组中第一个比20大的数是21,所以20的插入点值为4(没用找到关键字从索引从1开始

关键字100也不在数组中,而且100比数组中所有的元素都大,此时插入点值为length+1 为7(没有找到关键字索引从1开始

关键字10在数组中,所以返回其在数组中的索引为2(找到关键字索引从0开始

之所以计算插入点值时索引要从1开始算,是因为-0=0,如果从0开始算,那么上面例子中关键字2和关键字4的返回值就一样了。

 

Code

JavaCode-->JavaVSNet/arraydemo

C#Code--> 

 

转载于:https://www.cnblogs.com/SimplePerson/p/6417429.html

你可能感兴趣的文章
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
我最喜欢的 5 个 Gedit 插件
查看>>
OOoLatex:在 OpenOffice.org 中拔出 Latex 公式
查看>>
linu学习第二天:文件系统相关操作
查看>>
执行了的程序,才是你的程序.
查看>>
在AxureRP8中实现广告文字滚动效果
查看>>
jQuery获取CSS样式中的颜色值的问题
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
Sqlite文件在ubunut的查看
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
kettle 数据库连接失败
查看>>
ListView失去焦点选中行不能高亮显示的问题解决
查看>>