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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

List-ArrayList 使用

發布時間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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