当前位置: 首页 > wzjs >正文

深圳外贸网站建设工作室制作一个网页的步骤

深圳外贸网站建设工作室,制作一个网页的步骤,南宁手机平台网站建设,广州做网站市场Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…

Arrays 类

1. 导入包:import java.util.Arrays

2. 常用方法一览表

方法描述
Arrays.toString()返回数组的字符串形式
Arrays.sort()排序(自然排序定制排序
Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是有序的
Arrays.copyOf()数组元素的复制
Arrays.fill()数组元素的填充
Arrays.equals()比较两个数组内容是否完全一致
Arrays.asList()将一维数组,转换成 List 集合

一、Arrays.toString()

优点:方便查看数组内容,避免了通过遍历来输出内容的繁琐

代码示例

import java.util.Arrays;
public class main {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6};System.out.println(Arrays.toString(arr));}
}// 输出结果
[1, 2, 3, 4, 5, 6]

二、Arrays.sort()重点!

1. 自然排序(底层:快速排序

import java.util.Arrays;
public class main {public static void main(String[] args) {int[] arr = {6,5,9,8,32,1,4};Arrays.sort(arr);System.out.println(Arrays.toString(arr));}
}// 输出结果
[1, 4, 5, 6, 8, 9, 32]

2. 定制排序

(1)引入接口:Comprator

(2)实现接口方法compare

(3)代码示例

1. 原先代码

Arrays.sort(integer_arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return 0;}
});

说明:当前还没有学习泛型,代码修改为如下形式

2. 修改后的代码

import java.util.Arrays;
import java.util.Comparator;public class main {public static void main(String[] args) {Integer[] integer_arr = {6,5,9,8,32,1,4};Arrays.sort(integer_arr, new Comparator() {@Overridepublic int compare(Object o1, Object o2) {Integer n1 = (Integer) o1;Integer n2 = (Integer) o2;return n1 - n2;}});System.out.println(Arrays.toString(integer_arr));}
}// 输出结果
[1, 4, 5, 6, 8, 9, 32]

代码说明

三、实现定制排序的底层探究

1. 进入 sort 方法的底层源码

public static <T> void sort(T[] a, Comparator<? super T> c) {if (c == null) {sort(a);} else {if (LegacyMergeSort.userRequested)legacyMergeSort(a, c);elseTimSort.sort(a, 0, a.length, c, null, 0, 0);}
}

2. 进入 TimeSort 类的 sort 方法

static <T> void sort(T[] a, int lo, int hi, Comparator<? super T> c,T[] work, int workBase, int workLen) {assert c != null && a != null && lo >= 0 && lo <= hi && hi <= a.length;int nRemaining  = hi - lo;if (nRemaining < 2)return;  // Arrays of size 0 and 1 are always sorted// If array is small, do a "mini-TimSort" with no mergesif (nRemaining < MIN_MERGE) {int initRunLen = countRunAndMakeAscending(a, lo, hi, c);binarySort(a, lo, hi, lo + initRunLen, c);return;}

3. 进入binarrySort方法

private static <T> void binarySort(T[] a, int lo, int hi, int start,Comparator<? super T> c) {assert lo <= start && start <= hi;if (start == lo)start++;for ( ; start < hi; start++) {T pivot = a[start];// Set left (and right) to the index where a[start] (pivot) belongsint left = lo;int right = start;assert left <= right;/** Invariants:*   pivot >= all in [lo, left).*   pivot <  all in [right, start).*/while (left < right) {int mid = (left + right) >>> 1;if (c.compare(pivot, a[mid]) < 0)right = mid;elseleft = mid + 1;}assert left == right;

4. 本质:通过c.compare(pivot, a[mid])的结果来影响排序结果

核心部分代码

while (left < right) {int mid = (left + right) >>> 1;if (c.compare(pivot, a[mid]) < 0)right = mid;elseleft = mid + 1;
}

总结


四、Arrays.binarySearch()

二分查找方法(返回查找元素下标索引

注意点

底层源码

private static int binarySearch0(int[] a, int fromIndex, int toIndex,int key) {int low = fromIndex;int high = toIndex - 1;while (low <= high) {int mid = (low + high) >>> 1;int midVal = a[mid];if (midVal < key)low = mid + 1;else if (midVal > key)high = mid - 1;elsereturn mid; // key found}return -(low + 1);  // key not found.
}

代码示例

import java.util.Arrays;public class main {public static void main(String[] args) {int[] arr = {1, 2, 3};System.out.println(Arrays.binarySearch(arr, 2));System.out.println(Arrays.binarySearch(arr, 10));}
}// 输出结果
1
-4

代码说明

查找的元素10不存在,应该插入的位置为3下标索引),返回- (low + 1),即- (3 + 1),所以返回-4


五、Arrays.copyOf()

数组的拷贝

代码示例

import java.util.Arrays;public class main {public static void main(String[] args) {int[] arr = {1, 2, 3};int[] new_arr = Arrays.copyOf(arr,arr.length);System.out.println("arr: " + Arrays.toString(arr));System.out.println("new_arr:" + Arrays.toString(new_arr));}
}// 输出结果
arr: [1, 2, 3]
new_arr:[1, 2, 3]

六、Arrays.fill()

使用方法:Arrays.fill(目标数组填充值)

理解:把原数组中的所有数替换成填充数

代码示例

import java.util.Arrays;public class main {public static void main(String[] args) {int[] arr = {1, 2, 3};Arrays.fill(arr,1);System.out.println("after_fill:" + Arrays.toString(arr));}
}// 输出结果
after_fill:[1, 1, 1]

七、Arrays.equals()

比较两个数组的内容是否一致

使用方法:Arrays.equals(数组一数组二)

代码示例

import java.util.Arrays;public class main {public static void main(String[] args) {int[] arr = {1, 2, 3};int[] arr1 = {4,5,6};System.out.println("arr.equals(arr1)? " + Arrays.equals(arr,arr1));}
}// 输出结果
arr.equals(arr1)false

八、Arrays.asList()

1. 将一维数组转成 List 集合

2. 编译类型:List(接口)

3. 运行类型:java.util.Arrays#ArrayList,是 Arrays 类的静态内部类

private static class ArrayList<E> extends AbstractList<E>implements RandomAccess, java.io.Serializable

代码示例

import java.util.Arrays;
import java.util.List;public class main {public static void main(String[] args) {List aslist = Arrays.asList(1,2,3);System.out.println("aslist:" + aslist);System.out.println("getclass():" + aslist.getClass());}
}// 运行结果
aslist:[1, 2, 3]
getclass()class java.util.Arrays$ArrayList
http://www.dtcms.com/wzjs/205079.html

相关文章:

  • 网站推他网站北京网站优化效果
  • 诸城网站价格全网投放广告的渠道有哪些
  • 锦州网站制作公司南昌seo排名收费
  • 赣州新闻联播2023短视频seo营销
  • 高密住房和城乡建设部网站百度论坛
  • 建站吗官方网站2019网站seo
  • 网页策划书 网站建设定位网店培训班
  • 做网站产品图片素材网站查询工具
  • 网站开发 路由汕头搜索引擎优化服务
  • react 做网站网站注册步骤
  • 长沙关键词优化服务公司关键词seo
  • 网站建设与管理培训总结网站推广优化业务
  • 前程无忧深圳招聘网站关联词有哪些类型
  • php网站建设英文文献线下推广渠道和方式
  • 网站seo诊断分析专业排名优化工具
  • 怎么用htlm5自己做网站2022拉新推广赚钱的app
  • 上海静安做网站多少钱网址导航大全
  • 成都企业网站营业推广案例
  • 怎样查看网站关键词新浪疫情实时数据
  • 江苏网站建设培训浏览器正能量网站免费
  • 烟台网站建设 58关键词排名代发
  • vs2010网站设计用整张图片做背景秒收录关键词代发
  • 网站页面宽度最大的中文搜索引擎
  • 免费建立自己的网站代理发布外链
  • 网站建设推广费用手游推广平台哪个好
  • 平面设计资源网站seo值是什么意思
  • 专业网站建设效果永久免费二级域名申请
  • 男女做那事视频免费网站关键词搜索排名优化
  • 电影频道做的网站广告推广seo网站
  • 网站建设公司南宁中国域名网官网