效率(1) : String.indexOf与String.contains效率测试

您所在的位置:网站首页 array_contains性能 效率(1) : String.indexOf与String.contains效率测试

效率(1) : String.indexOf与String.contains效率测试

2024-03-07 07:13| 来源: 网络整理| 查看: 265

    String.indexOf与String.contains都是判断字符串是否包含另一个字符串的方法。String.indexOf存在返回第一个字符索引位置,不存才返回-1;String.contains存在返回true,不存在返回false。

    现在测试两个方法的效率,不区分大小写判断。一个字符串判断是否含有48个单词中的单词,执行一百万次。

    结论 : String.indexOf 效率更高。 (或许我的测试方法有误,欢迎指正)

    先上结果,如下

1000000*48 次 String.contains 耗时:4691 ms 1000000*48 次 String.indexOf 耗时:31 ms ^str1:全部存在(小写)------------------------------------------------------------------- 1000000*48 次 String.contains 耗时:3735 ms 1000000*48 次 String.indexOf 耗时:17 ms ^str2:全部存在(大写)------------------------------------------------------------------- 1000000*48 次 String.contains 耗时:37 ms 1000000*48 次 String.indexOf 耗时:14 ms ^str3:部分存在------------------------------------------------------------------------ 1000000*48 次 String.contains 耗时:17 ms 1000000*48 次 String.indexOf 耗时:14 ms ^str4:不存在(数字、字符、字母)---------------------------------------------------------- 1000000*48 次 String.contains 耗时:16 ms 1000000*48 次 String.indexOf 耗时:16 ms ^str5:不存在(字母)-------------------------------------------------------------------- 1000000*48 次 String.contains 耗时:17 ms 1000000*48 次 String.indexOf 耗时:14 ms ^str6:不存在(数字)-------------------------------------------------------------------- 1000000*48 次 String.contains 耗时:17 ms 1000000*48 次 String.indexOf 耗时:14 ms ^str7:不存在(字符)--------------------------------------------------------------------

 

测试代码如下

/** * @Auther: liyue * @Date: 2019/11/8 10:04 * @Description: */ public class StringContainsOrIndexOfVelocity { private static final String base = "article.add,article.update,article.delete,article.view," + "category.add,category.update,category.delete,category.view," + "user.add,user.update,user.delete,user.view," + "role.add,role.update,role.delete,role.view," + "news.add,news.update,news.delete,news.view," + "category.add,category.update,category.delete,category.view," + "Threading.add,Threading.update,Threading.delete,Threading.view," + "System.add,System.update,System.delete,System.view," + "Generic.add,Generic.update,Generic.delete,Generic.view," + "Collections.add,Collections.update,Collections.delete,Collections.view," + "Tasks.add,Tasks.update,Tasks.delete,Tasks.view," + "CslApp.add,CslApp.update,CslApp.delete,CslApp.view"; private static final String[] bases = base.toUpperCase().split(","); private static final String str1 = base; private static final String str2 = base.toUpperCase(); private static final String str3 = "ns.add,Collections.update,Collections.delete,Collections.ving.add,Threading.update,Threading.delete,Threading.add,role.update,role.delete,role.vietions.1"; private static final String str4 = "klsjflsjdfoadsfi;jadls;fjoashgewnaiefahefoia274923472395674358920374uy3fh2f92yfh02ydsuhawe9f''''''//>>>>>


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3