arr

数组,排序方法

走远了吗. 提交于 2019-11-27 15:41:00
数组 概念:存储数据的容器 ## 一、 特点 1、只能存储同一种数据类型 2、长度固定 3、直接打印数组名,打印的结果是数组在堆内存中的地址 4、数组创建后,都会根据其数据类型赋予默认值 整型:0 浮点型:0.0 布尔型:false 字符型:\u0000 控制台中以一个空格显示 其他(引用数据类型): null ## 二、 创建 []的位置可以放在数据类型之后,也可以放在数组名之后 ### 2.1 静态创建 格式: 数据类型 [] 数组名 = new 数据类型 []{元素1、元素2、、、、}; 变形: 数据类型 [] 数组名 = {元素1、元素2、、、、}; 注:当编码完成时,数组长度固定,在编译运行期间,不能再对数组进行改动,即不能对数组元素进行增删 ### 2.2 动态创建 格式: 数据类型 [] 数组名 = new 数据类型 [长度]; ## 三、数组中元素的获取、赋值 格式: 数组名[下标] 下标:索引、角标, 范围是 0~长度-1 获取数组的长度: 数组名.length 例如 arr.lengths 赋值:数组名[下标] = 值; ## 四、 遍历 1、借助Arrays工具类的toString(),将数组以字符串的形式输出 2、循环遍历 int arr[] = {x,x,x,x,x,x}; for(int i = 0 ; i < arr.lenght; i++){ /

一次php foreach 变量作用域的踩坑记录

戏子无情 提交于 2019-11-27 15:29:08
记录一次因为对PHP作用域理解不够导致的小坑。 自测需求的时候发现有一块地方数据很奇怪,要么该写的没有写入、要么数据被写入双份。剥离业务后的代码大概如下: <?php $arr = [ ['is_checked'=>false,'k'=>1], ['is_checked'=>false,'k'=>2], ]; foreach ($arr as &$item) { if ($item['k']==1) { $item['is_checked'] = true; } } echo '<pre>'; foreach ($arr as $item) { if ($item['is_checked']) { print_r($item); } } 我预想中 上面的代码应该是只打印arr里的第一条记录,也就是 ['is_checked'=>true,'k'=1] ,然而实际运行发现打印的是这样的: Array ( [is_checked] => 1 [k] => 1 ) Array ( [is_checked] => 1 [k] => 1 ) 居然打印了两条记录,而且两条的k都是1。 断点调试的时候也发现,运行到第二个foreach里的时候 arr确实变成了这样的数组: [ ['is_checked'=>true,'k'=>1], ['is_checked'=>true,'k'=>1], ]

JAVA基础语法练习(三)

回眸只為那壹抹淺笑 提交于 2019-11-27 15:24:59
/*--> */ /*--> */ 训练案例1 训练描述 定义一个方法 能接受一个整数 (这个整数大于 3)打印 0到这个整数 (包含 )之间的所有的偶数 如 接受的数字是 6则调用完方法打印出来的偶数是 0 2 4 6 如 接受的数字是 5则调用完方法打印出来的偶数是 0 2 4 操作步骤描述 • 创建一个测试类 ,在测试类中创建上述方法 • 定义一个无返回值 ,有参数的方法 • 在方法内部把符合条件的数字打印 • 在主方法中调用这个方法 ,并传入数字 15进行测试 训练案例2 训练描述 随机产生两个整数 ,随机数的范围均是 [1,100],定义方法求这两个整数的和并打印和值 操作步骤描述 • 创建一个测试类 • 在主方法中使用 Random产生两个范围是 [1,100]的随机数 • 定义一个求两个整数和的方法 • 在主方法中调用这个求和方法得到结果值 ,并打印 训练案例3 训练描述 主方法中给定数组int[] arr= {10,20,30,40,50,60}; 定义一个方法可以接受这个给定的数组 并返回这个数组中元素的最小值 操作步骤描述 • 创建一个测试类 ,在测试类中写该方法 • 定义一个方法可以接收一个整型的一维数组 3.在方法内部求出数组元素的最小值 ,并把这个最小值返回 4.在主方法中调用上述方法传递数组 arr,得到数组中元素的最小值并打印 训练案例4 训练描述

js 数组、对象转json 以及json转 数组、对象

血红的双手。 提交于 2019-11-27 15:21:14
1、JS对象转JSON 方式:JSON.stringify(obj) var json = { "name" : "iphone" , "price" : 666 } ; //创建对象; var jsonStr = JSON . stringify ( json ) ; //转为JSON字符串 console . log ( jsonStr ) ; 运行结果如下: 2、JS数组转JSON //数组转json串 var arr = [ 1 , 2 , 3 , { a : 1 } ] ; JSON . stringify ( arr ) ; 3、JS对象数组转JSON //数组转json串 var arr = [ 1 , 2 , 3 , { a : 1 } ] ; JSON . stringify ( arr ) ; 4、JSON转JS数组 //json字符串转数组 var jsonStr = '[1,2,3,{"a":1}]' ; var jsarr = JSON . parse ( jsonStr ) ; alert ( jsarr [ 0 ] ) ; 5、JSON转JS对象 var jsonString = '{"bar":"property","baz":3}' ; var jsObject = JSON . parse ( jsonString ) ; //转换为json对象

JavaScript之对象Array

跟風遠走 提交于 2019-11-27 15:19:24
  数组Array是JavaScript中最常用的类型之一,同一数组中可以保存任意类型的数据,并且它的长度是动态的,会随着数组中数据的加减自动变化。每个数组都有一个表示其长度(数组元素的个数)的length属性。并且数组元素的索引(下标)是从0开始的,所以数组最后一个元素的索引永远等于length – 1; 一 创建数组 1,使用new关键字创建 1 var arr = new Array(); 可以向Array构造函数传递参数以实现创建包含特定数据的数组,多个参数使用逗号隔开。    需要注意的是:当参数只有一个数字时,构造函数创建的不是包含该数字的字符串,而是一个长度为该数字的空数组,即arr.length = 数字。 2,使用字面量形式创建 1 var arr = [1,2,3]; 数组元素被包含在一对“[]”中括号内,数组的每个元素之间用逗号隔开,最后一个元素后面不需要逗号。   另外,上面已经讲过,数组的长度是动态的,它体现在可以手动的修改其length的值,以达到删除或增加数组长度的目的。 1 var arr = [1,2,3]; 2 console.log(arr.length);//3 3 arr.length = 2; 4 console.log(arr.length);//2 5 console.log(arr);//[1,2] 6 arr.length = 3

js数组冒泡排序

こ雲淡風輕ζ 提交于 2019-11-27 15:10:40
js数组的冒泡排序是最经典的一种排序方式(我以为)。 冒泡排序是吧一组数组的元素两两比较,交换位置,通过多轮比较,实现从大到小或者从小到大的排序。 var arr = [1,0,5,6,3,9,22,49,20,11,78,9]; // 创建一个新数组 for(var i = 0; i <= arr.length-1; i++){ // 外层循环控制比较几轮 for(var j = 0; j <= arr.length-i-1; j++){ // 内层循环控制每轮比较几个元素 if(arr[j] > arr[j+1]){ // 判断每一次比较的时候,两个数字的大小 // arr[j]是第j个元素 // arr[j+1]是第j+1 个元素 //如果j > j + 1, 把j 和j+i交换,也就是把相对大的值往后排序 也就是从小到大排序 //如果j < j + 1, 把相对小的值往后排 也就是从大到小排序 var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; // 利用第三方变量交换j 和j + 1 的值 } } } console.log(arr); 来源: https://www.cnblogs.com/sandraryan/p/11367870.html

17. 电话号码的字母组合

白昼怎懂夜的黑 提交于 2019-11-27 15:05:12
递归 class Solution { List<String> ls; String[] arr = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; public List<String> letterCombinations(String digits) { ls = new ArrayList<String>(); ls.clear(); if (digits != null && digits.length() > 0) dfs( digits, ""); return ls; } public void dfs( String num, String res) { if (num.length() == 0) ls.add(res); else { int flag = num.charAt(0) - '0'; for (int i = 0; i < arr[flag].length(); i++) { dfs( num.substring(1), res + arr[flag].charAt(i)); } } } } 循环 class Solution { String[] arr = { "", "", "abc", "def", "ghi", "jkl", "mno",

js用for循环模拟数组翻转

不问归期 提交于 2019-11-27 15:04:54
js本身为数组提供了reverse()方法,可以翻转数组,返回一个新的数组,不影响原数组。 本例中用for循环简单模拟reverse功能,实现数组翻转的效果。 <script> var arr = [1,9,0,8,5,3,0,2,0,2,4,9] var newArr = []; for(var i = arr.length-1; i >= 0; i--){ newArr.push(arr[i]); // i初始化为旧数组的长度-1,因为数组索引从零开始 // 当i大于等于0,结束循环 // 每次循环i减1 } console.log(arr); console.log(newArr); </script> 来源: https://www.cnblogs.com/sandraryan/p/11367661.html

websql操作类封装

倖福魔咒の 提交于 2019-11-27 13:42:37
  在之前,我写了一个websql的封装类库,代码如下: (function(win) { function smpWebSql(options){ options = options || {}; this.database = null; this.DateBaseName = options.DateBaseName || 'SmpDB'; this.Version = options.Version || '1.0'; this.Description = options.Description || 'SmpDB'; this.DataBaseSize = options.DataBaseSize || 2 * 1024 * 1024; this.init(); } smpWebSql.prototype = { init: function() { this.database = openDatabase(this.DateBaseName, this.Version, this.Description, this.DataBaseSize); //初始化数据库 }, addBlob: function (tableName, arr,index,isFirst,callback) {//批量添加字段 /* 注 : 数据里面的第一个key存储类型为BLOB @param

Scala 入门笔记 - 高阶函数

守給你的承諾、 提交于 2019-11-27 12:52:20
// 声明高阶函数,又叫算子, 包含多余一个箭头的函数 val func: Int => Int = x => x * x val arr = Array(1, 2, 3, 4, 5, 6) // 函数可做为函数传入 arr.map(x => func(x)) arr.map(func) // 将方法转换成函数,作为传入参数,这里做了隐式转换 def m1(x: Int) = x * x arr.map(x => m1(x)) arr.map(m1)    来源: https://www.cnblogs.com/sunnystone85/p/11363772.html