for循环

java中for和foreach循环

心已入冬 提交于 2019-12-09 04:50:30
foreach 从Java 5之后,Java提供了一种更简单的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组和集合元素时,无需获得数组和集合长度,无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素。 foreach是for语句的简化,但是foreach并不能代替for循环。可以这么说,任何foreach都能改写为for循环,但是反之则行不通。 适用对象 foreach不是Java中的关键字。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、Vector、数组等。 foreach循环的语法格式如下: for ( type variableName : array | collection ){ // variableName 自动迭代访问每个元素。。。 } 在上面语法格式中,type是数组元素或集合元素的类型,variableName 是一个形参名,foreach循环将自动将数组元素、集合元素依次赋值给变量。 array|collection是循环对象(数组或者是集合)。 使用方式 public class fortest { public static void main (String[] args) { String [] books={ "语文" , "数学"

Java for循环和foreach循环的性能比较

别说谁变了你拦得住时间么 提交于 2019-12-09 04:49:36
在公司codereview过程中,发现一个问题,就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了? 两种循环的语法格式: 普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreach 循环语法: for(Integer in : integers){ System.out.println(in); } 今天我们来比较一下两种for循环对ArrayList和LinkList集合的循环性能比较。首先简单的了解一下ArrayList和LinkList的区别: ArrayList:ArrayList是采用数组的形式保存对象的,这种方式将对象放在连续的内存块中,所以插入和删除时比较麻烦,查询比较方便。 LinkList:LinkList是将对象放在独立的空间中,而且每个空间中还保存下一个空间的索引,也就是数据结构中的链表结构,插入和删除比较方便,但是查找很麻烦,要从第一个开始遍历。 下面是我测试的代码: public class Main { public static void main(String[] args){ //实例化arrayList List<Integer>

Java中for each与正常for循环效率对比

一个人想着一个人 提交于 2019-12-09 04:48:39
循环ArrayList时,普通for循环比foreach循环花费的时间要少一点;循环LinkList时,普通for循环比foreach循环花费的时间要多很多。 当我将循环次数提升到一百万次的时候,循环ArrayList,普通for循环还是比foreach要快一点;但是普通for循环在循环LinkList时,程序直接卡死。 结论:需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。 需要循环链表结构的数据时,一定不要使用普通for循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。 原因:foreach使用的是迭代器 可以下标访问时,使用for,不能下标访问,需要指针访问时,使用for each。 来源: CSDN 作者: 邹啊涛 链接: https://blog.csdn.net/scuzoutao/article/details/77431522

for和foreach的效率比较

我们两清 提交于 2019-12-09 04:48:23
foreach的性能要比for要高;因为for循环要进行一个 array.GetLength来获取数组最大下标 。 当然只是相对的 1,如果只是读数据,选择foreach 2,如果只是写数据,选择for 3,for循环遍历的效率是低于foreach循环遍历 for循环在外部做count和在条件中做count相比较,第一种效率更高(for每次循环的时候都要去判断是否符合循环条件) 4,foreach 依赖 IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. 来源: CSDN 作者: 胡毅Ethan 链接: https://blog.csdn.net/will5451/article/details/77892003

for 循环的嵌套

一曲冷凌霜 提交于 2019-12-09 01:22:28
1. 列表生成式的嵌套 for 循环: 示例如下: li1 = range(1,6) li2 = list("ABC") # list("ABC") 的结果为 ["A", "B", "C"] for m in li1: for n in li2: print((m,n)) li = [(m,n) for m in li1 for n in li2] print(li) # 输出结果: (1, 'A') (1, 'B') (1, 'C') (2, 'A') (2, 'B') (2, 'C') (3, 'A') (3, 'B') (3, 'C') (4, 'A') (4, 'B') (4, 'C') (5, 'A') (5, 'B') (5, 'C') [(1, 'A'), (1, 'B'), (1, 'C'), (2, 'A'), (2, 'B'), (2, 'C'), (3, 'A'), (3, 'B'), (3, 'C'), (4, 'A'), (4, 'B'), (4, 'C'), (5, 'A'), (5, 'B'), (5, 'C')] # 列表生成式中的 两个 for 循环 作用就相当于 for 循环的嵌套 参考链接: https://www.jb51.net/article/150400.htm 来源: https://www.cnblogs.com/neozheng

django 第四天模板渲染

女生的网名这么多〃 提交于 2019-12-08 22:30:29
今日内容 一、模板渲染 语法 {{ 变量 }} {% 逻辑 %} 1.变量 取列表中的第几个元素,用索引 <p>{{ namelist.2 }}</p> 取字典中的第几个元素用key取 <p>{{ d1.age }}</p> 示例 html代码: <p>{{ num }}</p> <p>{{ namelist.2 }}</p> <p>{{ d1.age }}</p> <p>{{ a.kind }}</p> #取类中的对象 #. 后面不能有空格 <p>{{ a.eat }}</p> #取类中方法的返回值 views.py代码 def index(request): num = 100 name_list = ['大壮','小壮','壮壮'] d1 = {'name':'大壮','age':73,'hobby':'xuefei+xiangxi'} class Animal: def __init__(self): self.kind = 'dog' def eat(self): return 'shi' a = Animal() #return render(request,'index.html',{'num':num,'name':name,'namelist':name_list,'d1':d1,'a':a}) return render(request,'index.html'

python基础学习2

梦想的初衷 提交于 2019-12-08 22:26:36
python中的运算符 1、算术运算符:用来做算术运算的符号 ①、+ :求和,也可以做连接符 ②、 - :求差 ③、 * : 求积 ④、 / :求商 ⑤、% :取余 ⑥、// :取整 ⑦、** :次方 注意:只能是数值 print(3*3) #求积结果:9 print(9/2) #相除结果:4.5 print(3**4) #3的4次方,结果:81 print(9//4) #小数部分直接丢掉,取整结果:2 print(13%3) #取余结果:1   运行结果是 9 4.5 81 2 1   比较运算符:用来比较(值只可能是布尔类型[真True或假False]) == > < >= <= !=(不等于) 注意:== 比较字符串时,比较的是字符串的内容,其他比较都是数值(字符串的长度) score = 80 print(score > 90) print(score == 80) print(score >= 60) print(score != 80)   运行结果: False True True False   赋值运算符 = +=(可以做连接符) -= *= **= /= %= //= 注意:赋值运算符的左侧一定是个变量,右侧一定要有个数据 = :将右边的值给左边;其他:将两边的结果给左边 num = 3 #赋值 num += 6 #赋值 print(num) num2 = 3

数组,循环,条件23

巧了我就是萌 提交于 2019-12-08 19:39:33
//找数组的最大值和最小值,将数组转换 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(){ int arr [2][3]; int arr2[3][2]; int max, min; int i, j; int h; int l; for (i = 0; i < 2; i++){ for (j = 0; j < 3; j++){ printf("arr[%d][%d]=",i,j); scanf("%d", &arr[i][j]); } } printf("输出二维数组:\n"); for (i = 0; i < 2; i++){ for (j = 0; j < 3; j++){ printf("%d ", arr[i][j]); } putchar('\n'); } max = arr[0][0]; h = 0; l = 0; for (i = 0; i < 2; i++){ for (j = 0; j < 3; j++){ if (max < arr[i][j]){ max = arr[i][j]; h = i; l = j; } } } printf("数组中最大的原数数:\n"); printf("max=%d\n", max); min = arr[0][0];

使用for循环语句

情到浓时终转凉″ 提交于 2019-12-07 23:31:35
使用for循环语句 使用for循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,知道变量值用完退出循环。 这里我们说的“取值列表”是for语句的执行条件,其中包括多个属性相同的对象,需要雨点指定(如:通讯录,IP地址 就是读取不同的变量值,用来逐个执行同一组命令。 格式1:for 变量值 in 取值列表 do (开始执行) 命令序列 done 模式2: for ((指定的字数)) do ( 开始执行) 命令序列 done for语句的操作对象为用户指定名称的变量,并通过in关键字为该变量预先设定一个 取值列表,多个取值之间以空格进行分割。位于do.......done之间的命令序列我们称为“循环体”,其中的执行语句需要引用变量以完成相应的任务。 首先将列表中的第1个取值赋给变量,并执行do .... done循环体中的命令序列;然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列.....以此类推,直至列表中的所有取值用完,最后跳转到done结束循环。 来源: 51CTO 作者: wx5d8a05337d6b9 链接: https://blog.51cto.com/14557584/2456931

Go语言学习五 go的循环结构 chan range

依然范特西╮ 提交于 2019-12-07 23:07:29
Go 语言循环语句 Go 语言循环语句 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。 以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 循环控制语句 循环控制语句可以控制循环体内语句的执行过程。 GO 语言支持以下几种循环控制语句: 控制语句 描述 break 语句 经常用于中断当前 for 循环或跳出 switch 语句 continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。 goto 语句 将控制转移到被标记的语句。 无限循环 如过循环中条件语句永远不为 false 则会进行无限循环,我们可以通过 for 循环语句中只设置一个条件表达式来执行无限循环: package main import "fmt" func main() { for true { fmt.Printf("这是无限循环。\n"); } } Go 语言 for 循环 由 youj 创建, 最后一次修改 2016-07-22 Go 语言 for 循环 Go 语言循环语句 for循环是一个循环控制结构,可以执行指定次数的循环。 语法 Go语言的For循环有3中形式,只有其中的一种使用分号。 和 C 语言的 for 一样: