把for循环改成foreach循环

int GetSeriesValue(Series series, double argument)
{
for (int i = 0; i < series.Points.Count - 1; i++)
{
if (series.Points[i].NumericalArgument == argument)
return i;
else if (series.Points[i].NumericalArgument < argument && series.Points[i + 1].NumericalArgument > argument)
{
double interval1 = argument - series.Points[i].NumericalArgument;
double interval2 = series.Points[i + 1].NumericalArgument - argument;
return interval1 <= interval2 ? i : i + 1;
}
}
return 0;
}

5个回答

 int GetSeriesValue(Series series, double argument)
{
foreach (var item in series.Points.Zip(series.Points.Skip(1), (x, y) => new { x, y }))
{
if (item.x.NumericalArgument == argument)
return i;
else if (item.x.NumericalArgument < argument && item.y.NumericalArgument > argument)
{
double interval1 = argument - item.x.NumericalArgument;
double interval2 = item.y.NumericalArgument - argument;
return interval1 <= interval2 ? i : i + 1;
}
}
return 0;
}
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: 解决了么?看我下面的代码
大约 2 年之前 回复
qq_38353711
Lonely King 多谢您的指点
大约 2 年之前 回复
qq_38353711
Lonely King 老哥,看在我努力追求学问的份上,求你加个Q,我的Q895860863
大约 2 年之前 回复
qq_38353711
Lonely King 回复caozhy: 都有 用的vs2013
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: 怎么会呢。你using System.Linq了么?是C# 3.0以上么
大约 2 年之前 回复
qq_38353711
Lonely King Select里面不存在x,i
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: 你可以编辑问题,添加图片
大约 2 年之前 回复
qq_38353711
Lonely King 回复caozhy:这个发不了图片你看能加个联系方式么??
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: 什么问题
大约 2 年之前 回复
qq_38353711
Lonely King 回复qq_38353711: foreach (var item in series.Points.Zip(series.Points.Skip(1), (x, y) => new { x, y }).Select(x, i) => new { x.x, x.y, i })这一整段就变成了问题点
大约 2 年之前 回复
qq_38353711
Lonely King 回复caozhy: 这一段好像有问题
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: 然后i修改为 item.i
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 foreach (var item in series.Points.Zip(series.Points.Skip(1), (x, y) => new { x, y }).Select(x, i) => new { x.x, x.y, i })
大约 2 年之前 回复
qq_38353711
Lonely King 回复qq_38353711: i 报错
大约 2 年之前 回复
qq_38353711
Lonely King 返回 i 报错呀老哥
大约 2 年之前 回复

其实你的代码用不着foreach

再给你一个写法

foreach (int i in IEnumerable.Range(0, series.Points.Count))
{
...
}

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38353711: IEnumerable修改为Enumerable,using System.Linq;
大约 2 年之前 回复
qq_38353711
Lonely King 这个写的Range会报错了
大约 2 年之前 回复

我编写了一个简化的代码,通过在线编译和运行验证。

https://ideone.com/tiOlag

 using System;
using System.Linq;

public class Test
{
    public static void Main()
    {
        // your code goes here
        int[] arr = {1,2,3,4,5};
        foreach (var item in arr.Zip(arr.Skip(1), (x, y) => new { x, y }).Select((x, i) => new { x.x, x.y, i}))
        {
            Console.WriteLine("i={0}, arr[i]={1}, arr[i+1]={2}", item.i, item.x, item.y);
        }
    }
}

运行结果:
i=0, arr[i]=1, arr[i+1]=2
i=1, arr[i]=2, arr[i+1]=3
i=2, arr[i]=3, arr[i+1]=4
i=3, arr[i]=4, arr[i+1]=5

qq_38353711
Lonely King 你是大佬,求您收下我这个徒弟吧(✿◡‿◡)
大约 2 年之前 回复

作为对比:
https://ideone.com/V8ldvG

 using System;
using System.Linq;

public class Test
{
    public static void Main()
    {
        // your code goes here
        int[] arr = {1,2,3,4,5};
        for (int i = 0; i < arr.Length - 1; i++)
        {
            Console.WriteLine("i={0}, arr[i]={1}, arr[i+1]={2}", i, arr[i], arr[i + 1]);
        }
    }
}

这是按照你原来的方式编写的程序,结果一样

qq_38353711
Lonely King 非常感谢您,你真的好厉害呀,好想拜您为师
大约 2 年之前 回复

这是另一个版本,用Range实现的
https://ideone.com/3y2nFR

 using System;
using System.Linq;

public class Test
{
    public static void Main()
    {
        // your code goes here
        int[] arr = {1,2,3,4,5};
        foreach (int i in Enumerable.Range(0, arr.Length - 1))
        {
            Console.WriteLine("i={0}, arr[i]={1}, arr[i+1]={2}", i, arr[i], arr[i + 1]);
        }
    }
}
qq_38353711
Lonely King 谢谢您,我自己用代码尝试一下
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
foreach改for循环达到同样的效果

foreach (object r in ie) { foreach (object c in r.GetType().GetProperties().Select(x => x.GetValue(r, null))) { } } 因为要用脚标,哪位能帮我把上边的语句改成For循环的形式,谢谢.

在foreach循环中运行函数时进度条

<div class="post-text" itemprop="text"> <p>I have a foreach loop that calls a function to set values to an array. Sometimes it takes hours to complete depending on how many times it has to run thru the function to complete.</p> <p>What I would like to have is a progress bar or at least a 1/1000 completed type progress indicator.</p> <p>Is this possible? If so how could I implement this into my code? Would it be in the function or in the foreach loop? Been researching and found some examples using for and $i++ but I am not really sure how to implement that since I am already using a foreach loop.</p> <p>Thanks much.</p> <pre><code> function scrape_amazon($links) { //my code runs here to set all values in $ret array. } foreach($links as $link) { $ret = scrape_amazon($link); } </code></pre> </div>

thinkphp中foreach循环sql语句,怎样在模板中输出?

代码如下: ``` $project_list = array(1,2,3,4,5); foreach($project_list as $key => $val){ $project_uid = $project_list[$key]['uid']; $condition['uid'] = array('EQ',$project_uid); $weekscene_sum_visit = $weekscene->where($condition)->sum('visit'); echo $weekscene_sum_visit; } ``` 上面代码是对数据库中某字段的求和,条件是某个时间段的,循环执行多次SQL是因为uid的值不同,也就是分不同项目,即某时间段不同项目对某字段的求和。 在thinkphp控制器中上面的代码要怎样改,和模板中的代码要怎么写才能循环输出?

java中for循环得数据如何获取到

请问,我应该改成怎么样才可以获取把下面得FOR循环数据全部取出来 现在只能获取到最后一条数据 ![图片说明](https://img-ask.csdn.net/upload/201905/16/1557936963_872774.png)

多个方法可以循环调用吗?

比如主类的有一个循环3次的for循环,for循环中调用了2个成员方法,这2个方法可以重复执行5次吗?新手求解

c# 多线程 线程循环到一半就不动了

``` Thread Th = new Thread(() => { for (int i = 0; i < 1; i++) { Thread.Sleep(100); Thread T = new Thread(GetItemThrd); T.IsBackground = true; T.Start(); } }); Th.IsBackground = true; Th.Start(); ``` ``` private void GetItemThrd() { int CrtThrdID; lock (this) { CrtThrdID = ThrdID; Interlocked.Increment(ref ThrdID); Invoke(new Action(() => { AddRecordToDT(new List<string>() { CrtThrdID.ToString(), "正在g工作" }, ThrdTable); })); } string CatName = ""; while (true) { if (CatQue.Count > 0) { ``` 以上为多线程循环运行某一段代码的部分代码 但是线程中有foreach循环.foreach循环会循环500次.但是工作到一半就不动了... 就是没有办法循环完 是什么原因呢 ,,改成for循环也没有用

sql2008数据批量修改。

在表a里x列的数据前面批量添加字符串qwer/,求大神指点

冒泡排序一一维数组,三种方式输出排序后的数组,为什么会出现这种区别~~~~

package Learning; import java.util.Arrays; /** * Title:MaoPao * Description: 使用冒泡法排序数组中的元素 * @author:KimiLee * @date: 2017年10月10日 */ public class MaoPao { public static void main(String[] args) { int[] a = new int[] {2,58,32,24,76,98,43,1,18,66}; int t; System.out.println("排序前的数组为:"); //foreach 输出数组a /*for (int k : a) { System.out.print(k+","); }*/ System.out.println(Arrays.toString(a)); //冒泡排序 升序排列 for(int j=1;j<a.length-1;j++) { for (int i = 1;i<a.length-1;i++) { if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } System.out.println(); System.out.println("排序后的数组为:"); for(int i = 1;i<a.length;i++) { System.out.print(a[i]+" "); } System.out.println(); System.out.println(Arrays.toString(a)); for (int v : a) { System.out.print(v+","); } } } 输出结果: 排序前的数组为: [2, 58, 32, 24, 76, 98, 43, 1, 18, 66] 排序后的数组为: 1 18 24 32 43 58 66 76 98 [2, 1, 18, 24, 32, 43, 58, 66, 76, 98] 2,1,18,24,32,43,58,66,76,98, 代码及输出结果如上所示,试了好多遍,实在搞不懂为什么排序后,三种方式输出数组会有这样的区别,求解答~~~~~~~~~~~

怎样把微信小游戏转换成微信小程序?

快纪念日了,于是找了个拼图微信小游戏把里面图片改了改想哄妹子开心,结果微信小游戏发布不了,只能发小程序,小游戏和小程序的哪点不同?怎么样才能把微信小游戏改成小程序呢?这些小游戏的代码都要放在小程序的哪些文件下?。。。ps我是菜鸟小白经朋友介绍找到了这里。。。 谢谢各位大神 ![图片说明](https://img-ask.csdn.net/upload/201803/19/1521440464_381598.png) button.js里的代码: export default class Button { constructor(src, x, y, width, height) { this.img = new Image() this.img.src = src this.x = x this.y = y this.height = height this.width = width } render(ctx) { ctx.drawImage(this.img, this.x, this.y, this.width, this.height) } isTapped(x, y) { if (x > this.x && x < (this.x + this.width) && y > this.y && y < (this.y + this.height)) { return true } return false } } eventUtil.js里的代码: const __ = { x: Symbol('x'), y: Symbol('y'), onTap: Symbol('onTap'), onSwipe: Symbol('onSwipe'), } const SWIPEGAP = 40 const TYPE_TAP = 'tap' const TYPE_SWIPE = 'swipe' export default class EventUtil { constructor(onTap = function () {}, onSwipe = function () {}) { this[__.x] = 0; this[__.y] = 0; this[__.onTap] = onTap; this[__.onSwipe] = onSwipe; this.initEvent() } initEvent() { canvas.addEventListener('touchstart', ((e) => { e.preventDefault() this[__.x] = e.changedTouches[0].clientX this[__.y] = e.changedTouches[0].clientY }).bind(this)) canvas.addEventListener('touchend', ((e) => { e.preventDefault() let deltaX = e.changedTouches[0].clientX - this[__.x] let deltaY = e.changedTouches[0].clientY - this[__.y] if (deltaX * deltaX + deltaY * deltaY < SWIPEGAP * SWIPEGAP) { return this.fireEvent(TYPE_TAP) } if (Math.abs(deltaX) > Math.abs(deltaY)) { if (deltaX > 0) { return this.fireEvent(TYPE_SWIPE, 'right') } else { return this.fireEvent(TYPE_SWIPE, 'left') } } else { if (deltaY > 0) { return this.fireEvent(TYPE_SWIPE, 'down') } else { return this.fireEvent(TYPE_SWIPE, 'up') } } }).bind(this)) } fireEvent(type, direction) { var event = {} event.x = this[__.x] event.y = this[__.y] if (direction) { event.direction = direction } switch (type) { case TYPE_TAP: return this[__.onTap](event) case TYPE_SWIPE: return this[__.onSwipe](event) default: break; } } } Symbol.js里的代码: let Symbol = window.Symbol let idCounter = 0 if (!Symbol) { Symbol = function Symbol(key) { return `__${key}_${Math.floor(Math.random() * 1e9)}_${++idCounter}__` } Symbol.iterator = Symbol('Symbol.iterator') } window.Symbol = Symbol main.js里的代码: import EventUtil from './base/eventUtil' import BackGround from './runtime/background' import GameInfo from './runtime/gameinfo' import DataBus from './databus' let ctx = canvas.getContext('2d') let databus = new DataBus() /** * 游戏主函数 */ export default class Main { constructor() { this.bg = new BackGround(ctx) this.gameInfo = new GameInfo() let eventUtil = new EventUtil(((e) => { this.gameInfo.tap(e) }).bind(this), ((e) => { this.movePieces(e.direction); }).bind(this)) databus.reset() window.requestAnimationFrame( this.loop.bind(this), databus.pieces.forEach((item, position) => { item.render(ctx); }) ) } /** * 移动方块的方法 * * @param {any} direction 移动方向 * @returns * @memberof Main */ movePieces(direction) { let targetPiece switch (direction) { case 'up': targetPiece = databus.emptyPosition + databus.stage break; case 'down': targetPiece = databus.emptyPosition - databus.stage break; case 'left': targetPiece = databus.emptyPosition + 1 if (Math.floor(targetPiece / databus.stage) !== Math.floor(databus.emptyPosition / databus.stage)) { // 如果两个商不相等,说明左右滑动出现了换行现象,不能执行 return; } break; case 'right': targetPiece = databus.emptyPosition - 1 if (Math.floor(targetPiece / databus.stage) !== Math.floor(databus.emptyPosition / databus.stage)) { return; } break; default: break; } databus.pieces.forEach((item) => { if (item.position === targetPiece) { item.move(databus.emptyPosition) databus.emptyPosition = targetPiece } }) } checkGameOver() { if (databus.gameOver || databus.pieces.length === 0) { return } for (let i = 0; i < databus.pieces.length; i++) { let piece = databus.pieces[i] if (piece.index !== piece.position) { return false } } databus.gameOver = true databus.finalTime = databus.getCurrentTime() } /** * canvas重绘函数 * 每一帧重新绘制所有的需要展示的元素 */ render() { ctx.clearRect(0, 0, canvas.width, canvas.height) this.bg.render(ctx) databus.pieces.forEach((item) => { item.render(ctx); }) this.gameInfo.render(ctx) } // 游戏逻辑更新主函数 update() { // 统计是否有动画正在播放 let isAniPlaying = false databus.pieces.forEach((item) => { item.update(); if (item.ani !== 1) { isAniPlaying = true } }) // 如果没有动画正在播放,查看游戏是否结束 if (!isAniPlaying) { this.checkGameOver() } } // 实现游戏帧循环 loop() { this.update() this.render() window.requestAnimationFrame( this.loop.bind(this), canvas ) } } 简介: 一个微信小程序游戏,滑动进行方块拼接 源码目录介绍 ``` text ./js ├── base // 定义游戏开发基础类 │   ├── button.js                         // 游戏内可点击图片类 │   └── eventUtil.js                       // 处理点击事件的类 ├── libs │ ├── bezier.js // 用于进行淡入淡出动画的类库 https://github.com/gre/bezier-easing │ ├── symbol.js // ES6 Symbol简易兼容 │ └── weapp-adapter.js // 小游戏适配器 ├── models │ └── piece.js // 拼图方块类 ├── runtime │ ├── background.js // 背景类 │ ├── gameInfo.js // 游戏菜单、按钮和分数 │ ├── gameMap.js // 用于提供游戏的随机地图 │ └── music.js // 全局音效管理器 ├── databus.js // 管控游戏状态 └── main.js // 游戏入口主函数 ```

【小白提问】Layui动态添加laydate无法调用日历控件

1. 环境 Layui 2.代码 var formHtml = $($("div [name |= '" + formname + "form']")[formnum - 1]).html(); ``` //复制 $newform = $("<div name=\"" + formname + "form\">" + formHtml + "</div>"); //插入 $newform.insertBefore($("#" + formname + "control")); //渲染form form.render(); //渲染日历控件 laydate.render({ elem: '.datetime' }); ``` 3.截图 ![代码](https://img-ask.csdn.net/upload/202003/09/1583736779_853849.png) ![页面](https://img-ask.csdn.net/upload/202003/09/1583736788_747636.png) 4.问题 我要做的一个功能就是点一个功能将上面的form复制一份,然后可以多天一个人员信息。但是我发现法复制出来的laydate没有办法渲染。 解决方法: 1 把elem选择球从class . 改成 id #: 我先通关foreach循环找到新添加的 laydate,然后再新赋值给它一个id,然后再对这个laydate用id 渲染。 结果: 原先第一个的控件没有了,新增的控件一闪而过 2 修改lay-key 发现所有laydate的lay-key都是一样的,采用上面类似的的方法,修改信泽的laydate的 lay-key。 结果: 所有控件都能弹出,但是会卡住,不会收回,如果一直点会出现和多个控件叠在一起 3 删除lay-key 目前采用这个方法,就是新添加的laydate删除lay-key,现在都正常

str_replace 识别替换0的问题

``` $yuceq3Dt['yuceq3']='000000'; $idarr['q3zu3zu6']='038'; $yuceq3_arr = str_split($yuceq3Dt['yuceq3']); var_dump($yuceq3Dt['yuceq3']); var_dump($idarr['q3zu3zu6']); foreach ($yuceq3_arr as $key => $val) {//最近一期中的预测值拆开开始循环0-8 echo '<br><br>';var_dump($val); if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] === str_replace($val, '', $idarr['q3zu3zu6']))) { echo '<br>'.$val.'-'.$idarr['q3zu3zu6'].'-isok'; }else{ echo '<br>'.$val.'-'.$idarr['q3zu3zu6'].'-isno'; } } ``` 的结果是: string(6) "000000" string(3) "038" string(1) "0" 0-038-isno string(1) "0" 0-038-isno string(1) "0" 0-038-isno string(1) "0" 0-038-isno string(1) "0" 0-038-isno string(1) "0" 0-038-isno ``` if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] == str_replace($val, '', $idarr['q3zu3zu6']))) { ``` 改成===: ```if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] === str_replace($val, '', $idarr['q3zu3zu6']))) { ``` 结果是: string(6) "000000" string(3) "038" string(1) "0" 0-038-isok string(1) "0" 0-038-isok string(1) "0" 0-038-isok string(1) "0" 0-038-isok string(1) "0" 0-038-isok string(1) "0" 0-038-isok 这是为什么呢?难道是0不被替换?

struts2中<s:select>标签只能输出显示值,隐藏的value值出不来,内附详情

原本没有学习struts2时,下拉列表框是用一个集合保存,然后放到作用域,在页面上使用<c:foreach>循环输出,这样没问题: 后台java代码 Java代码 收藏代码 private List<Street> streetList; public List<Street> getStreetList() { return streetList; } public void setStreetList(List<Street> streetList) { this.streetList = streetList; } 在方法中为list赋值: streetList = new StreetBizImpl().getList(); 页面上使用foreach正常输出,有显示值,也有隐藏值 Html代码 收藏代码 <select> <c:forEach items="${streetList }" var="s"> <option value="${s.sid }">${s.name }</option> </c:forEach> </select> 但问题来了,使用struts2的ognl表达式就挂了: Html代码 收藏代码 <s:select list="streetList" listValue="name" listKey="sid"></s:select> 如果不加入listKey就没关系。 报500错误: org.apache.jasper.JasperException: Error on line 63, column 15 in template/simple/select.ftl stack.findString(parameters.listKey) is undefined. It cannot be assigned to itemKeyStr - Class: freemarker.core.Assignment File: Assignment.java Method: accept Line: 111 - freemarker/core/Assignment.java:111:-1 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164) org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275) org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) web.interceptor.UserInterceptor.doIntercept(UserInterceptor.java:16) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) 求大神指导,我实在找不出哪里的错了,我说下我想到过的点:①原本sid叫id,我怕是id重名过多,但改成sid还是不行。②项目编译不是最新的,我把项目导出→删除→导入,再次编译运行,还是不行。③可能是架包存在问题,但是我把架包删除完整重新放入了一边,还是不行。④我实在没辙了,在此求大神,我用的是Eclipse。现在只用了hibernate+struts2

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

2020春招面试了10多家大厂,我把问烂了的数据库事务知识点总结了一下

2020年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

立即提问
相关内容推荐