2013-05-09 1 views
1

Я разрабатываю приложение на Java и с Vector устарел Я должен изменить это с помощью ArrayList.Как вы меняете Vector в ArrayList?

Это соответствующий код, который должен быть изменен на ArrayList:

Это класс «Дом».

public Vector<Vector> getItems() { 
    Vector<Vector> data = new Vector<Vector>(); 
    for (int i = 0; i < _itemList.size(); i++) { 
     Vector<String> row = new Vector<String>(); 
     row.add(_itemList.get(i).getDecription()); 
     row.add(String.valueOf(_itemList.get(i).getprice())); 
     data.add(row); 
    } 
    return data; 
} 

Это GUI Класс:

private void updateView() { 

    //Gets Rows and Columns from the House.class 
    Vector<Vector> rowData = _listener.getHouse().getItems(); 
    Vector<String> columnNames = new Vector<String>(); 
    columnNames.add("Product Name"); 
    columnNames.add("Product Price(€)"); 
    //Creates Shopping Cart and sets size + properties 
    table1 = new JTable(rowData, columnNames); 
    table1.setPreferredScrollableViewportSize(new Dimension(375, 325)); 
    table1.setFillsViewportHeight(true); 
    //Adds ScrollPane to the container and sets the component position to center 
    JScrollPane scrollPane = new JScrollPane(table1); 
    centerPanel.add(scrollPane, BorderLayout.CENTER); 
} 

Мне нужно полностью прекратить использование VECTOR и использовать ArrayList вместо этого. Есть простой выход? Есть ли способ заменить это?

+1

Что здесь вопрос? Просто удалите все векторы с помощью arraylist. Усугубляя вас, вы не заботитесь о синхронизации. –

+4

'ctrl + f' then' find/replace' :-) – Sam

+1

У меня вопрос, но что вы пробовали? Сначала попробуйте, если вы получите какую-либо ошибку, тогда может возникнуть вопрос. Будьте смелыми и просто делайте это. ;) –

ответ

1

Это должно быть сделано для первого.

public List<List<String>> getItems() { 
    List<List<String>> data = new ArrayList<ArrayList<String>>(); 
    for (int i = 0; i < _itemList.size(); i++) { 
    List<String> row = new ArrayList<String>(); 
    row.add(_itemList.get(i).getDecription()); 
    row.add(String.valueOf(_itemList.get(i).getprice())); 
    data.add(row); 
    } 
    return data; 
} 

Второй - немного менее тривиальный. Вы можете начать с чего-то подобного, но я подозреваю, что использование TableModel было бы хорошим шагом вперед.

private void updateView() { 
    //Gets Rows and Columns from the House.class 
    List<List<String>> rowData = _listener.getHouse().getItems(); 
    List<String> columnNames = new ArrayList<String>(); 
    columnNames.add("Product Name"); 
    columnNames.add("Product Price(€)"); 
    //Creates Shopping Cart and sets size + properties 
    // **** Will not work - Probably better to use a TableModel. 
    table1 = new JTable(rowData, columnNames); 
    table1.setPreferredScrollableViewportSize(new Dimension(375, 325)); 
    table1.setFillsViewportHeight(true); 
    //Adds ScrollPane to the container and sets the component position to center 
    JScrollPane scrollPane = new JScrollPane(table1); 
    centerPanel.add(scrollPane, BorderLayout.CENTER); 
} 
+0

Посмотрите мои комментарии на ответ Стэнли. –

+1

@SayemAhmed - Я согласен - 'ArrayList' правильно изменился на' List'. – OldCurmudgeon

1
Vector<String> vector = new Vector<String>(); 
// (... Populate vector here...) 
ArrayList<String> list = new ArrayList<String>(vector); 

Это здесь java vector to arraylist

+1

Вы не должны объявлять свои переменные типа 'ArrayList', если вам не нужно. Из сообщения OP я вижу, что он использует методы, объявленные в интерфейсе 'List'. Таким образом, тип 'list' должен быть' List ', а не' ArrayList '. –