日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

List-ArrayList 使用

發布時間:2025/4/16 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List-ArrayList 使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天優化一段代碼,如下

int num = 0; boolean skipAppend = false;int types_ext1[] = new int[] {ModuleType.TYPE_CONTACT, ModuleType.TYPE_MESSAGE,ModuleType.TYPE_PICTURE, ModuleType.TYPE_BOOKMARK,ModuleType.TYPE_MUSIC}; int types_ext2[] = new int[] {ModuleType.TYPE_CONTACT, ModuleType.TYPE_MESSAGE,ModuleType.TYPE_PICTURE, ModuleType.TYPE_BOOKMARK,ModuleType.TYPE_CALENDAR};int types_ext3[] = new int[] {ModuleType.TYPE_CONTACT, ModuleType.TYPE_MESSAGE,ModuleType.TYPE_PICTURE, ModuleType.TYPE_BOOKMARK}; if(mIsGoogleOrigCalendarExist && mIsGoogleOrigMusicExist){num = types.length;for (int i = 0; i < num; i++) {types_ext[i] = types[i] ;}MyLogger.logE("yjp", "music & calendar are not 3rd-party");} else if(!(mIsGoogleOrigCalendarExist || mIsGoogleOrigMusicExist)){num = types_ext3.length;for (int i = 0; i < num; i++) {types_ext[i] = types_ext3[i];}MyLogger.logE("yjp", "music & calendar are 3rd-party");} else if(!mIsGoogleOrigCalendarExist && mIsGoogleOrigMusicExist){num = types_ext1.length;for (int i = 0; i < num; i++) {types_ext[i] = types_ext1[i];}MyLogger.logE("yjp", "calendar is 3rd-party");} else if(mIsGoogleOrigCalendarExist && !mIsGoogleOrigMusicExist){num = types_ext2.length;for (int i = 0; i < num; i++) {types_ext[i] = types_ext2[i];}MyLogger.logE("yjp", "music is 3rd-party");}

這段代碼,其實就是改變int[]里面的元素。因為int[]數組就是增刪比較麻煩,只能靠循環提取到另外的數組。所以,我想到了使用list,這樣動態改變起來就非常的方便

如下

ArrayList<Integer> typeList = new ArrayList<Integer>();for (int i = 0; i < types.length; i++) {typeList.add(types[i]);} try {PackageManager pm1 = getPackageManager();pm1.getPackageInfo("com.android.calendar", PackageManager.GET_ACTIVITIES);mIsGoogleOrigCalendarExist = true;} catch (PackageManager.NameNotFoundException e) { MyLogger.logE("yjp", "google original Calendar not found");} try {PackageManager pm2 = getPackageManager();pm2.getPackageInfo("com.android.music", PackageManager.GET_ACTIVITIES);mIsGoogleOrigMusicExist = true;} catch (PackageManager.NameNotFoundException e) { MyLogger.logE("yjp", "google original Music not found");} if (!mIsGoogleOrigMusicExist) {typeList.remove(Integer.valueOf(ModuleType.TYPE_MUSIC));} if (!mIsGoogleOrigCalendarExist) {typeList.remove(Integer.valueOf(ModuleType.TYPE_CALENDAR));} if (FeatureOption.VANZO_OOS_BROWSER_SUPPORT) {typeList.remove(Integer.valueOf(ModuleType.TYPE_BOOKMARK));} int num = typeList.size();

?在修改的時候,遇到了一個問題,就是當我嘗試移除一個名為ModuleType.TYPE_BOOKMARK的元素的時候,我使用的方法是typeList.remove(ModuleType.TYPE_BOOKMARK);結果一直報錯,說是數組越界。這個是很容易理解的,因為 ModuleType.TYPE_BOOKMARK本身就是一個數值,代碼這時候認為你是移除這個位置上的元素。后來改為這個方法,成功了。另外,這個代碼中有一點還是非常值得我們學習的。就是

?

try {PackageManager pm1 = getPackageManager();pm1.getPackageInfo("com.android.calendar", PackageManager.GET_ACTIVITIES);mIsGoogleOrigCalendarExist = true;} catch (PackageManager.NameNotFoundException e) { MyLogger.logE("yjp", "google original Calendar not found");}

?

它巧妙的運用了異常以后,對接下來try{}代碼不做處理的特點,更改了標志位的狀態

?

轉載于:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_arraylist_150127922.html

總結

以上是生活随笔為你收集整理的List-ArrayList 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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