2016-06-17 3 views
0

Как объявить String [] в Arraylist? Например, у меня есть неизвестное/различное количество пар фильмов/трейлеров. Поэтому для каждого элемента в arraylist я хочу, чтобы на нем была String [] с именем фильма и URL-адресом трейлера. я попробовал некоторые вещи, подобные следующим, но они не работают:Как объявить String [] в Arraylist?

private ArrayList<String[2]> movieArray= new ArrayList<>(); 
+3

Почему вы не делаете и не используете класс класса 'class Movie {String name; String трейлер; } ArrayList фильмы; ' – Selvin

+0

см. Мой ответ @Tal C –

ответ

7

Как об использовании модели:

public class Movie 
{ 
    private String movieName; 
    private String trailerUrl; 

    public void setMovieName (String movieName) 
    { 
    this.movieName = movieName; 
    } 

    public void setTrailerUrl (String trailerUrl) 
    { 
    this.trailerUrl= trailerUrl; 
    } 

    public void getMovieName() 
    { 
    return movieName; 
    } 

    public void getTrailerUrl() 
    { 
    return trailerUrl; 
    } 

} 

А потом просто объявить:

private ArrayList<Movie> movieArrayList = new ArrayList<>(); 

Если вы хотите добавить один набор данных. Сделайте это:

Movie objMovie = new Movie(); 
objMovie.setMovieName("Movie Name"); 
objMovie.setTrailerUrl("Trailer URL"); 
movieArrayList.add(objMovie); 
2

Вы можете объявить ArrayList из массива строк следующим образом:

private ArrayList<String[]> movieArray= new ArrayList<>(); 
    String[] trailer= new String[3]; 
    trailer[0] = "Trailer0"; 
    trailer[1] = "Trailer1"; 
    movieArray.add(trailer); 

С Днем Coding !!!

+0

http://ideone.com/WZxzJ0 он не будет компилировать – Selvin

+0

@selvin Обновлено !! – Anjali

4

Вы можете сделать это:

ArrayList<List<String>> movieArray = new ArrayList<>(); 

List<String> movie = new ArrayList<>(); 
movie.add("name"); 
movie.add("url"); 
movieArray.add(movie); 

EDIT:

public class Movie { 
    private String name; 
    private String url; 

    public Movie(String name, String url){ 
     this.name = name; 
     this.url = url; 
    } 

    // getter/setter 
} 

List<Movie> movies = new ArrayList<>(); 

movies.add(new Movie("name", "url")); 
movies.add(new Movie("name2", "url2")); 
+0

Так что я не могу делать регулярный массив, поскольку я уже знаю, что это всего 2 элемента в каждом из них? Я слышал, что он более эффективен, если мы знаем, сколько элементов мы хотим ввести. –

+0

Да, вы можете! Но, как предложил @Selvin, вы должны создать собственный класс и составить его список. См. Мой отредактированный ответ –

2

Это будет полезно для переменного размера строковых массивов.

Попробуйте делать это:

ArrayList<String[]> movieArray = new ArrayList<>(); 

String[] array = {"hi","hi","hi","hi"}; 

String[] array1 = {"hi","hi"}; 

movieArray.add(array); 
movieArray.add(array1); 
3

Попробуйте

List<String[]> movieArray = new ArrayList<>(); 

movieArray(new String[] {"trailer1", "trailer2", "..."}); 
2

Это должно работать

List<String[]> movieArray= new ArrayList<>(); 

Я хотел бы предложить создание модели Movie и использовать, как показано ниже.

List<Movie> movieArray= new ArrayList<>(); 

Если вам действительно не нравится создавать модели, вы можете создать список карт, как показано ниже.

List<Map> movieArray = new ArrayList<>(); 

Свыше вы можете сохранить данные на карте и получить к ней доступ.

Смежные вопросы