import java.util.ArrayList;
import java.util.List;
public class Testif {
public static void main(String[] args) {
List<String> lsSqlTypeInt =new ArrayList<String>();
for(int i=0;i<10;i++){
lsSqlTypeInt.add(""+i);
}
long tls = System.currentTimeMillis();
for(int j=0; j<1000000000;j++){
String y="1";
y=lsSqlTypeInt.contains("1")?"1":"2";
}
long tls2 = System.currentTimeMillis();
long tif = System.currentTimeMillis();
for(int k=0; k<1000000000;k++){
String z="1";
if(z.equals("1")){
z="1";
}
if(z.equals("2")){
z="2";
}
if(z.equals("3")){
z="3";
}
if(z.equals("4")){
z="4";
}
if(z.equals("5")){
z="5";
}
if(z.equals("6")){
z="6";
}
if(z.equals("7")){
z="7";
}
if(z.equals("8")){
z="8";
}
if(z.equals("9")){
z="9";
}
if(z.equals("0")){
z="10";
}
}
long tif2 = System.currentTimeMillis();
System.out.println(tls2-tls);
System.out.println(tif2-tif);
}
}
输出结果:
62735
169297
我自个测的,目的是判断用list与用if作大量条件判断哪个效率更高
修改一下:
import java.util.ArrayList;
import java.util.List;
public class Testif {
public static void main(String[] args) {
List<String> lsSqlTypeInt =new ArrayList<String>();
for(int i=0;i<10;i++){
lsSqlTypeInt.add(""+i);
}
// long tt1 = System.currentTimeMillis();
// for(int j=0; j<1000000000;j++){
// String sflag="";
// String y="1";
// sflag=lsSqlTypeInt.contains(y)?"1":"2";
// }
// long tt2 = System.currentTimeMillis();
long tif = System.currentTimeMillis();
for(int k=0; k<1000000000;k++){
String sflag2="";
String z=(k%10)+"";
if(z.equals("1")){
sflag2="1";
}else if(z.equals("2")){
sflag2="2";
}else if(z.equals("3")){
sflag2="3";
}else if(z.equals("4")){
sflag2="4";
}else if(z.equals("5")){
sflag2="5";
}else if(z.equals("6")){
sflag2="6";
}else if(z.equals("7")){
sflag2="7";
}else if(z.equals("8")){
sflag2="8";
}else if(z.equals("9")){
sflag2="9";
}else if(z.equals("0")){
sflag2="10";
}else{
}
}
long tif2 = System.currentTimeMillis();
long tls = System.currentTimeMillis();
for(int j=0; j<1000000000;j++){
String sflag="";
String y=(j%10)+"";
sflag=lsSqlTypeInt.contains(y)?"1":"2";
}
long tls2 = System.currentTimeMillis();
System.out.println(tls2-tls);
System.out.println(tif2-tif);
}
}
输出结果:
480359
422484
import java.util.List;
public class Testif {
public static void main(String[] args) {
List<String> lsSqlTypeInt =new ArrayList<String>();
for(int i=0;i<10;i++){
lsSqlTypeInt.add(""+i);
}
long tls = System.currentTimeMillis();
for(int j=0; j<1000000000;j++){
String y="1";
y=lsSqlTypeInt.contains("1")?"1":"2";
}
long tls2 = System.currentTimeMillis();
long tif = System.currentTimeMillis();
for(int k=0; k<1000000000;k++){
String z="1";
if(z.equals("1")){
z="1";
}
if(z.equals("2")){
z="2";
}
if(z.equals("3")){
z="3";
}
if(z.equals("4")){
z="4";
}
if(z.equals("5")){
z="5";
}
if(z.equals("6")){
z="6";
}
if(z.equals("7")){
z="7";
}
if(z.equals("8")){
z="8";
}
if(z.equals("9")){
z="9";
}
if(z.equals("0")){
z="10";
}
}
long tif2 = System.currentTimeMillis();
System.out.println(tls2-tls);
System.out.println(tif2-tif);
}
}
输出结果:
62735
169297
我自个测的,目的是判断用list与用if作大量条件判断哪个效率更高
修改一下:
import java.util.ArrayList;
import java.util.List;
public class Testif {
public static void main(String[] args) {
List<String> lsSqlTypeInt =new ArrayList<String>();
for(int i=0;i<10;i++){
lsSqlTypeInt.add(""+i);
}
// long tt1 = System.currentTimeMillis();
// for(int j=0; j<1000000000;j++){
// String sflag="";
// String y="1";
// sflag=lsSqlTypeInt.contains(y)?"1":"2";
// }
// long tt2 = System.currentTimeMillis();
long tif = System.currentTimeMillis();
for(int k=0; k<1000000000;k++){
String sflag2="";
String z=(k%10)+"";
if(z.equals("1")){
sflag2="1";
}else if(z.equals("2")){
sflag2="2";
}else if(z.equals("3")){
sflag2="3";
}else if(z.equals("4")){
sflag2="4";
}else if(z.equals("5")){
sflag2="5";
}else if(z.equals("6")){
sflag2="6";
}else if(z.equals("7")){
sflag2="7";
}else if(z.equals("8")){
sflag2="8";
}else if(z.equals("9")){
sflag2="9";
}else if(z.equals("0")){
sflag2="10";
}else{
}
}
long tif2 = System.currentTimeMillis();
long tls = System.currentTimeMillis();
for(int j=0; j<1000000000;j++){
String sflag="";
String y=(j%10)+"";
sflag=lsSqlTypeInt.contains(y)?"1":"2";
}
long tls2 = System.currentTimeMillis();
System.out.println(tls2-tls);
System.out.println(tif2-tif);
}
}
输出结果:
480359
422484
本文通过实验对比了使用Java List进行元素查找与使用if条件语句进行判断的性能差异。通过对10亿次迭代的操作进行计时,得出两者在执行效率上的具体数值比较。
1303

被折叠的 条评论
为什么被折叠?



