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

群辉授权wordpress权限淄博网站关键字优化

群辉授权wordpress权限,淄博网站关键字优化,网站建设管理员工工资多少钱,爱做奈官方网站非常重要的: 方法设计(参数,返回值,调用) 数组也重要,但是后续很少用! 是因为后期有更简单的【集合】,重要在于是一种思想,也是一种代码逻辑 关于数组: 声明创建取值,存值遍历面试|算法 --> 排序内存图(堆,栈,引用) 今天 数组工具类: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.yayakq.cn/news/931958/

相关文章:

  • 找人做网站多少钱盐城哪家专业做网站
  • 学习php好的网站福清市建设工程交易网站好像
  • 高端网站建设磐石网络好电子公司网页设计
  • 做代金券的网站群晖搭建的wordpress外网访问
  • 微网站免费开发平台企业级问答网站开发
  • 58同城网站建设方案西安网站建设服务商
  • 网站扫码充值怎么做的网站建设平面要多少分辨率
  • 石狮网站设计公司公司网站建设详细方案
  • 宁波海曙区建设局网站蓝色中网站
  • 抚顺网站建设推荐中国互联网协会举报中心
  • 中国贸易网站有哪些网站空间绑定域名
  • 网站域名查询工具哪些网站是营销型网站
  • 开发网站wordpress wpquery
  • saas建站平台源码wordpress 即时站内搜索
  • 电商网站分析江苏做网站公司
  • 深圳网站建设大公司好镇江平台公司
  • 手机网站设计公司立找亿企邦企业营销策划服务
  • 网站如何自己做优化上海企业免费建站
  • 网站建设电子合同win8网站源码
  • 网站设计找谁做用html制作网页
  • 学校网站建设情况说明wordpress淘宝内容
  • 圆通我做网站拉怎么创建
  • 江阴网站开发公司电话网站建设需要懂什么软件
  • 做家乡网站源代码南康网站制作
  • 外贸网站建设费用情况高端网网站建设
  • 网站推他网站网站开通流程
  • 家居企业网站建设渠道电子商务网站开发实战
  • 公司网站推广如何做南充高端网站建设
  • 网站模板建站教程网站二次开发模板
  • 唐山市住房和城乡建设局网站杭州网站建设推广