【问题标题】:How do I declare a String[] in an Arraylist?如何在 Arraylist 中声明 String[]?
【发布时间】:2016-10-19 01:45:09
【问题描述】:

如何在 Arraylist 中声明 String[]?例如,我有未知/不同数量的电影/预告片对。因此,对于数组列表中的每个项目,我希望有一个带有电影名称和预告片 URL 的 String[]。 我尝试了一些类似于以下的方法,但它们不起作用:

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

【问题讨论】:

  • 为什么不制作和使用模型类class Movie { String name; String trailer; } ArrayList&lt;Movie&gt; movies;
  • 看我的回答@Tal C

标签: java android arrays arraylist multidimensional-array


【解决方案1】:

这将有助于字符串数组的可变大小。

尝试这样做:

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

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

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

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

【讨论】:

    【解决方案2】:

    这应该可以工作

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

    我建议创建一个电影模型并像下面这样使用。

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

    如果您真的不喜欢创建模型,可以创建如下地图列表。

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

    您可以将属性存储在地图中并访问它。

    【讨论】:

      【解决方案3】:

      你可以这样做:

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

      编辑:

      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"));
      

      【讨论】:

      • 所以我不能做一个常规数组,因为我已经知道每个元素只有 2 个元素?我听说如果我们知道要放入多少元素,效率会更高。
      • 是的,你可以!但正如@Selvin 建议的那样,您应该创建一个自定义类并列出它。查看我编辑的答案
      【解决方案4】:

      如何使用模型:

      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);
      

      【讨论】:

        【解决方案5】:

        试试这个

        List<String[]> movieArray = new ArrayList<>();
        
        movieArray(new String[] {"trailer1", "trailer2", "..."});
        

        【讨论】:

          【解决方案6】:

          可以如下声明String数组的arrayList:

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

          编码愉快!!!

          【讨论】:

          • @selvin 更新!!
          【解决方案7】:

          private ArrayList&lt;String[]&gt; movieArray= new ArrayList&lt;&gt;();

          【讨论】:

            猜你喜欢
            • 2016-01-13
            • 2021-02-21
            • 2023-03-19
            • 1970-01-01
            • 2013-02-15
            • 2011-09-13
            • 2012-06-15
            • 2016-07-19
            • 2013-07-02
            相关资源
            最近更新 更多