arr

java 队列的实现

萝らか妹 提交于 2020-01-22 17:27:49
public static void main ( String args [ ] ) throws IOException { ArrayQueue arrayQueue = new ArrayQueue ( 3 ) ; char key = ' ' ; //接收用户输入 Scanner scan = new Scanner ( System . in ) ; boolean loop = true ; while ( loop ) { System . out . println ( "s:显示队列" ) ; System . out . println ( "e:退出程序" ) ; System . out . println ( "a:添加数据到队列" ) ; System . out . println ( "g:队列里取数据" ) ; System . out . println ( "h:显示头" ) ; System . out . println ( "r:显示尾" ) ; key = scan . next ( ) . charAt ( 0 ) ; switch ( key ) { case 's' : try { arrayQueue . showQueue ( ) ; System . out . println ( "已显示全部数据" ) ; }

Java异常(二) 《Effective Java》中关于异常处理的几条建议

点点圈 提交于 2020-01-22 10:10:46
概要 本章是从 《Effective Java》 摘录整理出来的关于异常 处理的几条建议。内容包括: 第1条: 只针对不正常的情况才使用异常 第2条: 对于可恢复的条件使用被检查的异常,对于程序错误使用运行时异常 第3条: 避免不必要的使用被检查的异常 第4条: 尽量使用标准的异常 第5条: 抛出的异常要适合于相应的抽象 第6条: 每个方法抛出的异常都要有文档 第7条: 在细节消息中包含失败 -- 捕获消息 第8条: 努力使失败保持原子性 第9条: 不要忽略异常 它们对应原书中"第8章 异常"部分的第39-47条。 转载请注明出处: http://www.cnblogs.com/skywang12345/p/3544287.html 第1条: 只针对不正常的情况才使用异常 建议:异常只应该被用于不正常的条件,它们永远不应该被用于正常的控制流。 通过比较下面的两份代码进行说明。 代码1 try { int i=0; while (true) { arr[i]=0; i++; } } catch (IndexOutOfBoundsException e) { } 代码2 for (int i=0; i<arr.length; i++) { arr[i]=0; }   两份代码的作用都是遍历arr数组,并设置数组中每一个元素的值为0。代码1的是通过异常来终止,看起来非常难懂

Algorithm01-八大排序

。_饼干妹妹 提交于 2020-01-22 05:42:06
1.八大排序 2.冒泡排序 static void bubbling ( int [ ] arr ) { final int length = arr . length ; for ( int i = 0 ; i < length - 1 ; i ++ ) { for ( int j = 0 ; j < length - i - 1 ; j ++ ) { if ( arr [ j ] > arr [ j + 1 ] ) { int t = arr [ j ] ; arr [ j ] = arr [ j + 1 ] ; arr [ j + 1 ] = t ; } } } } 3.插入排序 static void insertion ( int [ ] arr ) { final int length = arr . length ; for ( int i = 1 ; i < length ; i ++ ) { //&& arr[j] < arr[j - 1],排序过后前面的数已经有序 //arr[j] < arr[j - 1],前面已经有序,所以前面肯定没有比arr[j]大的数 //这样减少内层循环 for ( int j = i ; j > 0 && arr [ j ] < arr [ j - 1 ] ; j -- ) { if ( arr [ j ] < arr [ j - 1

第二周复习笔记

我是研究僧i 提交于 2020-01-21 23:57:32
前两周学习路线: 围绕JS组成部分:ES、BOM、DOM ES:声明JS基本语法(变量、判断、循环、函数、数组、对象、内置对象方法) BOM:使js有能力操作浏览器 DOM:使js有能力操作网页 名词复习: 什么是变量:用来临时网页数据 判断学了哪些:if、switch、?: 什么是循环:重复指定一段代码的表现 什么是函数:将一段公共的代码进行封装,一次定义 多次调用 什么是数组:一堆有序数据的集合 数据类型分类: 基本类型:数值型number、字符串型string、布尔型boolean、null、undefined 数值型(整数和小数) 后端:没有数值型 整型和浮点型 复杂类型:function、array、object Day01 1.对象:对象一堆无序数据的集合 ① 创建对象 语法:// 字面量创建(简单语法 推荐) var 变量名obj = { 值1 , …, 值n} // 值势必按照下述格式 键:值, …, 键n:值n //注:键引号可加可不加,推荐统一不加 // 内置构造函数语法 var 变量名obj = new Object() // 空对象 var 变量名obj = new Object({ 值1 , …, 值n}) ② 操作对象 获取:对象.键 增加:对象.键 = 值 (键不存在就是新增) 修改:对象.键 = 值 (键存在就是修改) 删除:delete 对象.键

Java基础语法

梦想与她 提交于 2020-01-21 23:47:33
整理一些之前学习Java基础语法的部分知识点。 常量 常量:是指在Java程序中固定不变的数据。 分类 类型 含义 数据举例 整数常量 所有的整数 0,1,567,-9 小数常量 所有的小数 0.0, -0.1, 2.55 字符常量 单引号引起来,只能写一个字符,必须有内容 'a' , ' ', '好' 字符串常量 双引号引起来,可以写多个字符,也可以不写 "A" ,"Hello" ,"你好" ,"" 布尔常量 只有两个值(流程控制中讲解) true , false 空常量 只有一个值(引用数据类型中讲解) null 变量 变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。 数据类型 数据类型分类 Java的数据类型分为两大类: 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。 引用数据类型:包括 类 、 数组 、 接口 。 基本数据类型 四类八种基本数据类型: 数据类型 关键字 内存占用 取值范围 字节型 byte 1个字节 -128~127 短整型 short 2个字节 -32768~32767 整型 int(默认) 4个字节 -2的31次方~2的31次方-1 长整型 long 8个字节 -2的63次方~2的63次方-1 单精度浮点数 float 4个字节 1.4013E-45~3.4028E+38 双精度浮点数 double(默认) 8个字节 4.9E

【面试篇】2017腾讯IMWeb前端秋招特训营思考题

时光总嘲笑我的痴心妄想 提交于 2020-01-21 12:23:37
7月12日 思考题 题一:站点Logo是否应该出现在<h1>标签中? 题二:是否应该支持IE6? 面试题 什么是盒子模型? 答: margin , border , padding , content ;标准盒和怪异盒 简述src和href的区别? 答:src从外部引入资源,href将页面导向外部资源 简述同步和异步的区别? 答:同步:当前进程执行完后,下一个进程才能执行;异步:当前进程的执行不影响下一个进程的执行 怎样添加,移除,移动,复制,创建和查找节点? 答:添加节点 appendChild ,移除节点 removeChild ,复制节点 clone ,创建 createElement ,查找节点 parentNode , childNodes 编程题 找出元素item在给定数组arr中的位置 编程思路:二分查找 function indexOf(arr, item) { var arr = arr.sort(function(a,b){ return a-b; }); function binSearch(arr,item){ var upperBound = arr.length-1; var lowerBound = 0; while(lowerBound<=upperBound){ var mid = Math.floor((upperBound+lowerBound

JAVA基础语法练习(三)

五迷三道 提交于 2020-01-21 05:42:58
/*--> */ /*--> */ 训练案例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 训练描述

Java基础学习笔记四 Java基础语法

为君一笑 提交于 2020-01-21 05:41:20
数组 数组的需求 现在需要统计某公司员工的工资情况,例如计算平均工资、最高工资等。假设该公司有50名员工,用前面所学的知识完成,那么程序首先需要声明50个变量来分别记住每位员工的工资,这样做会显得很麻烦. 数组的概述 数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。 数组的定义 格式: 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 举例:int[] x = new int[100]; 要点说明 数据类型: 数组中存储元素的数据类型 [] 表示数组的意思 变量名 自定义标识符 new 创建容器关键字 元素个数,就是数组中,可以存储多少个数据 (恒定, 定长) 数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号(索引(index), 下标, 角标) 访问数组存储的元素,必须依赖于索引, 数组名[索引] 数组中最小的索引是 0 ,最大的索引是“数组的长度 -1 ”。 在程序中可以通过 “数组名 .length ”的方式来获得数组的长度,即元素的个数。 接下来,通过一个案例来演示如何定义数组以及访问数组中的元素,如下所示。ArrayDemo01.java public class ArrayDemo01 { public static void main(String[] args)

PHP 数组①

前提是你 提交于 2020-01-21 04:04:56
输出: echo 是输出,只能输出普通类型的数据,不能输出数组,但能输出数组的一条数据。 var_dump() 可以输出普通类型,也可输出数组,输出的数据会标明该条 数据的值是什么数据类型array(1){[“ouyanke”]=>string(9)“欧阳克”}注意有无引号 print_r() 打印数组,专门输出数组,不包含数据类型array(1)([ouyanke]=>欧阳克) 数组: $arr = array() 索引数组无下标,默认下标是数字;而关联数组有下标,可以是数字也可以是字符 索引数组: $arr = array('欧阳克', '黄蓉','郭靖'); 关联数组: $arr = array('ouyangke' => '欧阳克','huangrong' => '黄蓉','guojing' => '郭靖'); 数组定义中每条数据都有两个参数,一个是key(下标),一个是value(值) 如:ouyanke是下标,欧阳克是值。 JS中不能自定义数组下标,JS的下标默认是数字;php数组下标可以是数字,也可以自定义字符; 数组循环 1、 foreach($arr as $v){}; 解释:把数组的中每一个变量的值赋值给$v,并输出值,且只能输出值 2、 foreach($arr as $k=>$v){}; 解释:把数组中的变量的下标给 k e y , 变 量 值 给 key

动态规划

时间秒杀一切 提交于 2020-01-21 00:32:06
动态规划 参考视频av16544031、av18512769 一、重叠子问题 问题 1 回顾斐波那契数列,实质是一个递归关系 也是一个overlap sub-problem 重叠子问题 如果我们要计算fib(7),就会去计算fib(6)和fib(5),之后继续往下,中间fib(6)分解成fib(5)和fib(4),在这部分,我们的fib进行了很多次分解,fib(5)被计算了2次。 算法复杂度会变成O(2^n) 解决方案 将重叠子问题进行保存起来,然后之后再进行取用 二、最优解 问题2 我们有8个task,然后我们中间有重合的时间段,每个task会有一定的收益,怎样才能让收益最高?这是一个典型的dp问题。 解决方案 OPT(optimizations) 最优解 要获得opt,首先得需要思考进行选和不选问题。 If OPT(8) 选择:4+OPT(5) 不选择:OPT(7) 以此类推,我们就可以知道一张prev表 i prev(i) 1 0 2 0 3 0 4 1 5 0 6 2 7 3 8 5 问题3 我们有如下数字, 选出一堆数字,使得不相邻,且加起来结果最大。 解决方案 javascript代码: var arr = [1,2,4,1,7,8,3] var max = (a,b) => a > b ? a:b var rec_opt = (arr,i)=>{ if(i===0)