Eng.Amal نشر 8 نوفمبر 2015 أرسل تقرير نشر 8 نوفمبر 2015 لدي في تطبيق جافا مجموعة من القوائم ArrayList أقوم بتخزين عناصر فيها كيف يمكنني تعطيل عمليات add() , remove() and set() على القوائم؟ اقتباس
0 Lujain Maaz نشر 10 نوفمبر 2015 أرسل تقرير نشر 10 نوفمبر 2015 يمكن عمل مصفوفة ArrayList أن تكون للقراءة فقط باستخدام الدالة:Collections.unmodifiableCollection() والتي ترجع متغير غير قابل للتعديل readonly view of Collection أي لا تستطيع أن تقوم بتنفيذ أي عملية تعمل على تغيير المجمع collection مثل عملية الإضافة add او الإزالة remove او التغيير set. وفي حال تطبيق أي تغيير على المصفوفة (collection) سيتم رمي استثناء:UnsupportedOperationExceptionالطريقة الأكثر شيوعًا في إنشاء مصفوفة غير قابلة للتعديل هي باستخدام الدالة asList في الصف Arrays Class:Arrays.asList(String{[])والتي تُرجع قائمة List لا يُسمح عليها تطبيق عمليات الإضافة أو الإزالة.سأعرض مثال عن كيفية جعل ArrayList تصبح مصفوفة أو قائمة للقراءة فقط read only، سأستخدم الدالة asList من الصف Arrays لإنشاء مصفوفة قائمة ArrayList ذات طول ثابت fixed length ومن ثم تغليفها أو تحويلها إلى تجميع غير قابل للتعديل unmodifiable collection لجعلها للقراءة فقط:public static void main(String args[]) { //creating read only Collection in Java Collection readOnlyCollection = Collections.unmodifiableCollection(new ArrayList<String>()); readOnlyCollection.add("Sydney Sheldon"); //raises UnSupportedOperation exception //making existing ArrayList readonly in Java ArrayList readableList = new ArrayList(); readableList.add("Jeffrey Archer"); readableList.add("Khalid Hussain"); List unmodifiableList = Collections.unmodifiableList(readableList); //add will throw Exception because List is readonly unmodifiableList.add("R.K. Narayan"); //remove is not allowed in unmodifiable list unmodifiableList.remove(0); //set is not allowed in unmodifiable List unmodifiableList.set(0, "Anurag Kashyap"); //creating Fixed Length List from Array in Java List fixedLengthList = Arrays.asList("Mark" , "Twen"); // readOnlyList.add("J.K. Rowling"); //raises Exception fixedLengthList.set(0, "J.K. Rowling"); //allowed that's why not read only list System.out.println(fixedLengthList.get(0)); } كيف يمكن عمل ArrayList للقراءة فقط read only في جافا؟ 1 اقتباس
السؤال
Eng.Amal
لدي في تطبيق جافا مجموعة من القوائم ArrayList أقوم بتخزين عناصر فيها كيف يمكنني تعطيل عمليات add() , remove() and set() على القوائم؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.