Which “if” construct is faster - statement or ternary operator?

前端 未结 6 704
借酒劲吻你
借酒劲吻你 2020-12-01 01:08

There are two types of if statements in java - classic: if {} else {} and shorthand: exp ? value1 : value2. Is one faster than the oth

6条回答
  •  青春惊慌失措
    2020-12-01 01:37

    Ternary operator is faster than if-else condition.

    public class TerinaryTest {
        public static void main(String[] args)
        {
            int j = 2,i = 0;
            Date d1 = new Date();
            for(long l=1;l<100000000;l++)
                if(i==1) j=1;
                    else j=0;
            Date d2 = new Date();
            for(long l=1;l<100000000;l++)
                j=i==1?1:0;
            Date d3 = new Date();
            System.out.println("Time for if-else: " + (d2.getTime()-d1.getTime()));
            System.out.println("Time for ternary: " + (d3.getTime()-d2.getTime()));
        }
    }
    

    Test Results:

    Trail-1:

    Time for if-else: 63

    Time for ternary: 31

    Trail-2:

    Time for if-else: 78

    Time for ternary: 47

    Trail-3:

    Time for if-else: 94

    Time for ternary: 31

    Trail-4:

    Time for if-else: 78

    Time for ternary: 47

提交回复
热议问题