Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Защита кода при работе с ArrayList


Автор: Lazarus Long 27.10.2010, 14:01
Доброго времени суток!

Подскажите пожалуйста, каким образом и при помощи каких исключений можно защитить данный код программы?

Код

import java.io.*;
import java.util.*; 

class Constructor {
 //mass - множество чисел
 ArrayList <Integer> mass = new ArrayList<Integer>();

 //создание и заполнение множества
 public Constructor(int n) {
  Random rand = new Random();
  for (int i=0; i<n; i++) {
   int randN = rand.nextInt(16);
   mass.add(i,randN);
  }  
 }

 //по-умолчанию
 Constructor() {
  this(16);
 }

 //вывод на экран элементов множества
 public void printS() {
  System.out.format("\nDisplay elements of the set: ");
   for (int i=0; i<mass.size(); i++) {
    System.out.print(mass.get(i)+ " ");
  }
 }

 //добавление элемента к множеству
 public void addE (int pos, int val) {
  mass.add(pos,val);
  System.out.format("\nNew position of element = %s is %s", val, pos);
 }

 //определение количества элементов в множестве
 public void sizeS () {
  System.out.format("\nSize of the set is %s", mass.size());
 }

  //удаление элемента множества = val
 public void delE (int val) {
  System.out.format("\nRemove the element's of the set if equal to %s", val);
  for (int i=0; i<mass.size(); i++) {
   if (mass.get(i)==val) mass.remove(i);
  }
 }
}

class LabFour {
 public static void main (String args []) {
  Constructor mass = new Constructor();
  mass.printS();
  mass.sizeS();
  mass.addE(5,5);
  mass.sizeS();
  mass.printS();
  mass.delE(5);
  mass.printS();
  mass.sizeS();
 }
}


Заранее благодарен!

Автор: sith 28.10.2010, 15:47
от кого защитить... или от кого???

Автор: Lazarus Long 29.10.2010, 12:35
Наверное, от возможной нехватки памяти при заполнении списка элементами или от вставки элемента по индексу, большему размера списка и похожее.
Хотя бы одну ситуацию.

Автор: jk1 29.10.2010, 13:08
Цитата

Наверное, от возможной нехватки памяти при заполнении списка элементами

от такого мозг должен защищать, а не исключения. 

Цитата

вставки элемента по индексу, большему размера списка

Если внимательно почитать документацию на ArrayList становиться понятно, что он сам контроллирует размер массива, в котором хранит данные.

Если философски подойти к проблеме, Collections Framework, в который входит ArrayList этим и отличается от массивов, что там вся "защита" уже сделана за Вас.

Автор: dorogoyIV 29.10.2010, 13:10
не успел smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)