日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

由String.equals()方法引起的一系列思考

發(fā)布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 由String.equals()方法引起的一系列思考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

? ? 廢話不多說直接貼String.euqals方法代碼

public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value; int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false; }

在閱讀equals方法實現(xiàn)的時候對紅色字體的邏輯感覺不夠簡化(需要多定義一個變量 ?'i'?),所以自己實現(xiàn)了如下代碼(替換紅色部分),

while (n != 0) {if (v1[--n] != v2[n])return false; }

自認為少定義了一個變量,可以優(yōu)化代碼行數(shù)(最近在關注代碼質量問題,開始對代碼有潔癖,多一行都感覺不夠優(yōu)雅 ^_^),然后心里小高興的讓媳婦(高前端)來探討(其實就是想炫耀了)。

? ?我們就在代碼優(yōu)雅及可讀性、常規(guī)思維的優(yōu)先級各執(zhí)己見,突然又想到數(shù)組根據下標取數(shù)據的效率快慢(這可是決定了我的優(yōu)化在效率方面是否有提升哇),趕緊查看JDK數(shù)組的實現(xiàn)。

? ? 上網查了一些資料卻沒有找到JDK 數(shù)組實現(xiàn)的相關內容,所以只能先暫時放下這個思路(有知道的大神給點提示哇)。另尋思路就是自己實現(xiàn)一個超級大的數(shù)組,然后比較數(shù)組取第一個元素及取最后一個元素的時間差,于是作者變實現(xiàn)了如下代碼:

public static void main(String[] args) {int vArr[] = new int[15464691];//jvm默認數(shù)組最大值int i = 0;while(i != 15464691){vArr[i] = i++;}long start = System.currentTimeMillis();System.out.println(vArr[0] + " time:" + (start - System.currentTimeMillis()));start = System.currentTimeMillis();System.out.println(vArr[15464690]+" time:"+(start - System.currentTimeMillis() )); }

控制打印信息:

????0 time:0(多次運行中,有一次出現(xiàn)-1)
????15464690 time:0

????所以在數(shù)組取值的效率這個問題上暫且結論為是沒有影響的。

????現(xiàn)在我心里的觀點是修改后的邏輯(數(shù)組從后往前比較)與常規(guī)邏輯(從前往后比較)及代碼可閱讀性上,對咱廣大程序員來說還是小case的,那我覺著能少一個變量的定義、操作,少一行代碼,對我來說都是小小的驕傲啊(我又對代碼進行了優(yōu)化哇O(∩_∩)O哈哈~)。

? ? 現(xiàn)在未查找JDK中數(shù)組實現(xiàn)原理,所以暫且結論如上,如有哪位大大給指教一下啊。

? ? 然后坐著會繼續(xù)找一些JDK的數(shù)組實現(xiàn),再進行比較。

?

?

?

轉載于:https://my.oschina.net/u/2307114/blog/713232

總結

以上是生活随笔為你收集整理的由String.equals()方法引起的一系列思考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。