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

网站建设哪家专业公司好购买seo关键词排名优化官网

网站建设哪家专业公司好,购买seo关键词排名优化官网,广州沙河一起做网站的网址,济宁b2b网站建设服务非常重要的: 方法设计(参数,返回值,调用) 数组也重要,但是后续很少用! 是因为后期有更简单的【集合】,重要在于是一种思想,也是一种代码逻辑 关于数组: 声明创建取值,存值遍历面试|算法 --> 排序内存图(堆,栈,引用) 今天 数组工具类:Arrays数组扩容(拷…

非常重要的: 方法设计(参数,返回值,调用)

数组也重要,但是后续很少用! 是因为后期有更简单的【集合】,重要在于是一种思想,也是一种代码逻辑


关于数组:

  • 声明创建
  • 取值,存值
  • 遍历
  • 面试|算法 --> 排序
  • 内存图(堆,栈,引用)

今天

  • 数组工具类:Arrays
  • 数组扩容(拷贝)
  • 作业

一、Arrays

Arrays , 数组工具类, 主要提供一系列操作数组的方法,常用的

  • String toString(数组参数) 将数组的元素以字符串的形式返回(将数组转成字符串后返回)
  • void sort(数组参数), 将数组按照升序排序
  • copy
package com.qf.array;import java.util.Arrays;/*** @desc*/
public class Demo1 {public static void main(String[] args) {// 数组声明创建方式1int[] arr1 = new int[3];// int arr2[];// 语法不错,但是不建议// 数组声明创建方式2int[] arr2 = new int[]{1,2,3,4};// 数组声明创建方式3int[] arr3 = {1,2,3,4};/*** 使用数组工具类,用法*  返回值 = 类名.方法名(参数)*------------------------------* toString方法,作用是将数组以字符串形式返回*-----------------------------* 作用:*   主要用来遍历数组元素,方便查看*/// String s = Arrays.toString(arr3);// System.out.println(s );System.out.println( "遍历" + Arrays.toString(arr3));/*** Arrays工具第二个常用方法* void sort(数组),作用是将数组按照升序排序*/int[] arr4 = {5,2,3,1,4};// 排序前遍历一遍,看效果System.out.println("排序前: "+Arrays.toString(arr4));// 调用方法完成排序Arrays.sort(arr4);System.out.println("排序后: "+Arrays.toString(arr4));}
}

二、数组扩容

数组特点是长度固定,那还怎么扩容?

  • 为什么扩容? 因为装不下
  • 怎么扩? 其实是重新创建一个大一点(一般是1.5倍,2倍)的数组,将之前数组的元素拷贝到新的数组

image-20231007104719762

三、拷贝

3.1 手动

思路

  1. 手动创建一个数组(假定原数组2倍长度)
  2. 遍历老数组取出元素,挨个存储到新数组
package com.qf.array;import java.util.Arrays;/*** @desc 数组扩容+拷贝*/
public class Demo2 {public static void main(String[] args) {// 现有数组int[] arr = {1,2,3,4,5};System.out.println("扩容前: " + Arrays.toString(arr) );// 继续往里存储数据,但是存储不了// arr[5] = 6; // 报错,越界// 现在想将数组扩容,后再存储arr = copy1(arr);arr[5] = 6;System.out.println("扩容后: " + Arrays.toString(arr) );}// 需求: 将数组长度扩大2倍// 拷贝方式1: 手动实现public static int[] copy1(int[] arr) {// 创建一个新数组是原来的2倍int[] arr2 = new int[arr.length * 2];// System.out.println("拷贝前: " + Arrays.toString(arr2) );// 开始拷贝for (int i = 0; i < arr.length; i++) {// 取出老数组中的元素赋值给新数组arr2[i] = arr[i];}// System.out.println("拷贝后: " + Arrays.toString(arr2) );return arr2;}
}

image-20231007112526549

3.2 System工具【重要】

package com.qf.array;import java.util.Arrays;/*** @desc 数组扩容+拷贝(工具实现)*/
public class Demo3 {public static void main(String[] args) {// 现有数组int[] arr = {1,2,3,4,5};System.out.println("扩容前: " + Arrays.toString(arr) );// 继续往里存储数据,但是存储不了// arr[5] = 6; // 报错,越界// 现在想将数组扩容,后再存储arr = copy(arr);// 将新数组地址值覆盖给变量// 即arr现在指向新的数组arr[5] = 6;System.out.println("扩容后: " + Arrays.toString(arr) );}public static int[] copy(int[] arr) {/*** 现在使用jdk自带工具方法完成数组拷贝* 参数1: src,资源(原始、源),即原数组* 参数2: srcPos,原始数组位置* 参数3: dest,目的地即新数组* 参数4: destPos,新数组位置* 参数5: length,长度即拷贝的元素个数** 从原数组的指定位置拷贝指定个数到新数组指定位置*/int[] arr2 = new int[arr.length * 2];System.arraycopy(arr,0,arr2,0,arr.length);return arr2;// 返回的是新数组的地址值}
}

3.3 Arrays工具

public class Demo4 {public static void main(String[] args) {// 现有数组int[] arr = {1,2,3,4,5};System.out.println("扩容前: " + Arrays.toString(arr) );// 继续往里存储数据,但是存储不了// arr[5] = 6; // 报错,越界// 现在想将数组扩容,后再存储/*** Arrays提供的方法* copyOf方法内部创建了新数组,长度是指定长度*   而且还会将之前老数组的元素拷贝到新数组*   最后将新数组的地址值返回给变量arr* 即arr指向最新的数组*/arr = Arrays.copyOf(arr,arr.length*2);arr[5] = 6;System.out.println("扩容后: " + Arrays.toString(arr) );}
}

四、作业

题19

请创建一个长度为5的整数数组,并为数组中的元素赋值。遍历数组,打印所有元素,元素之间用空格隔开。比如:
数组为:1,2,3,4,5
打印结果:[1,2,3,4,5] 
    public static void main(String[] args) {int[] arr = {11, 22, 33, 44, 55};String s = toStrPro(arr);System.out.println(s );Arrays.toString(arr);}// 请创建一个长度为6的整数数组,并为数组中的元素赋值。遍历数组,打印所有元素,元素之间用空格隔开。比如:// 数组为:1,2,3,4,5// 打印结果:[1,2,3,4,5]public static void toStr(int[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {// 是不是最后一个System.out.print(arr[i] + "]");} else {System.out.print(arr[i] + ",");}}}// 模拟Arrays.toString()方法,将数组元素以字符串形式返回public static String toStrPro(int[] arr) {String s = "[";for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {// 是不是最后一个s += arr[i] + "]";} else {s += arr[i] + ",";}}return s;// "[1,2,3]"}

题目23

写一个方法 用于合并两个int类型的数组  合并法则如下{1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0} (合并)
 public static void main(String[] args) {int[] arr1 = {1,2,5,8,9};int[] arr2 = {1,3,0,6,10};int[] arr3 = concatArray(arr1,arr2);System.out.println(Arrays.toString(arr3) );}/*** 扩展知识:* 整型默认值: 0* 浮点型默认值: 0.0* char默认值: ' '* boolean默认值: false* ---* 引用类型: 数组,类,接口* 引用类型的默认初始值都是null*///  {1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0} (合并)public static int[] concatArray(int[] arr1, int[] arr2) {// 创建新数组,存储所有元素int[] arr3 = new int[arr1.length + arr2.length];// 方式1// for (int i = 0; i < arr1.length; i++) {//     arr3[i] = arr1[i];// }// for (int i = 0; i < arr2.length; i++) {//     arr3[arr1.length+i] = arr2[i];// }// 方式2// for (int i = 0; i < arr3.length; i++) {//     if (i < arr1.length) {//         arr3[i] = arr1[i];//     } else {//         arr3[i] = arr2[i - arr1.length];//     }// }// 方式3System.arraycopy(arr1,0,arr3,0,arr1.length);System.arraycopy(arr2,0,arr3,arr1.length,arr2.length);return arr3;}

题目24

写一个方法 用于合并两个int类型的数组  合并法则如下{1,2,5,3,8,9}{1,3,0}---->{0,1,1,2,3,3,5,8,9} (合并并排序不需要去重)
 public static void main(String[] args) {int[] arr1 = {1,2,5,8,9};int[] arr2 = {1,3,0,6,10};int[] arr3 = concatSortArray(arr1,arr2);System.out.println(Arrays.toString(arr3) );}// 合并并排序//    {1,2,5,3,8,9}{1,3,0}---->{0,1,1,2,3,3,5,8,9} (合并并排序不需要去重)public static int[] concatSortArray(int[] arr1, int[] arr2) {// 创建新数组,存储所有元素int[] arr3 = new int[arr1.length + arr2.length];System.arraycopy(arr1,0,arr3,0,arr1.length);System.arraycopy(arr2,0,arr3,arr1.length,arr2.length);Arrays.sort(arr3);return arr3;}

题目25

写一个方法 用于合并去重两个int类型的数组  合并法则如下{1,2,5,3,8,9}{1,3,0}---->{0,1,2,3,5,8,9} (合并并排序需要去重)
    public static void main(String[] args) {int[] arr1 = {1,2,5};int[] arr2 = {1,6,2,3,10};int[] arr3 = concatSortDistinctArray(arr1,arr2);System.out.println(Arrays.toString(arr3) );}// 写一个方法 用于合并去重两个int类型的数组  合并法则如下//    {1,2,5,3,8,9}{1,3,0}---->{0,1,2,3,5,8,9} (合并并排序需要去重)public static int[] concatSortDistinctArray(int[] arr1, int[] arr2) {// 创建新数组,合并所有元素int[] arr3 = new int[arr1.length + arr2.length];System.arraycopy(arr1,0,arr3,0,arr1.length);System.arraycopy(arr2,0,arr3,arr1.length,arr2.length);// 排序Arrays.sort(arr3);// 去重// [0,1,1,2,3,5,8,9] --> [0,1,2,3,5,8,9]/*** 要新建数组存储去重后的元素* 利用极值思想,那就创建一个根原数组一样大的数组存储*/int[] arr4 = new int[arr3.length];int index = 0;for (int i = 0; i < arr3.length; i++) {int e = arr3[i];boolean flag = false;// 判断是否有重复元素的标志,false是没有重复元素for (int j = 0; j < arr4.length; j++) {if (e == arr4[j]) {flag = true;// 有重复,标志改动break;}}if (!flag) {arr4[index] = e;index++;}}// 只存储不重复的元素int[] arr5 = new int[index];System.arraycopy(arr4,0,arr5,0,index);return arr5;}
http://www.yidumall.com/news/44756.html

相关文章:

  • 域名备案 网站备案谷歌浏览器下载安装
  • 一级造价工程师报名网站工业和信息化部
  • 做网站表格深圳互联网营销
  • 在网站里怎么做图片超链接安康seo
  • 网站开发哪里可做私活百度推广最简单方法
  • 网站常用模块功能说明启动互联全网营销推广
  • 网站外链建设策略百度一下百度首页登录
  • 上海网站优化加盟网站建设案例
  • 网站显示时间代码移投界seo
  • 兰州商城网站建设免费发帖推广网站
  • c#网站开发网易云课堂百度云下载女教师遭网课入侵视频大全集
  • 保定设计网站建设网站建设深圳公司
  • 专门做网站的公司与外包公司有哪些企点下载
  • 成都做整站优化公司网站的推广
  • asp网站开发心得体会郑州seo优化外包
  • 响应式网站样式图怎么做杭州明开seo
  • 建立视频网站泉州关键词排名工具
  • 怎样让百度快速收录网站广州最新疫情情况
  • 网页pc端吉安seo
  • 网站集群建设通知网络营销案例分析论文
  • 中国核工业华兴建设公司网站windows优化
  • 门户网站建设教程营销软文500字
  • 怎么做时时彩网站代理小说网站排名人气
  • wordpress d8360手机优化大师下载
  • 广告图文制作用哪个软件上海比较好的seo公司
  • 做网站 设计师很推广网页
  • wordpress中文破解主题济宁seo优化公司
  • 杭州有没有专业做网站的公司推广软文营销案例
  • 长沙网站制作公司谷歌浏览器手机版官网下载
  • 网站制作客户寻找关键词优化怎么写