如何在Java中执行此MutliArray设置?

时间:2010-03-24 14:56:00

标签: java php android arrays arraylist

我来自PHP背景,我只是熟悉一些Java。我想知道如何尽可能简单地在Java中实现以下内容,只需通过通常的“System.out.print()”方法将结果回显给终端。

<?php
$Results[0]['title'] = "No Country for Old Men";
$Results[0]['run_time'] = "122 mins";
$Results[0]['cert'] = "15";
$Results[1]['title'] = "Old School";
$Results[1]['run_time'] = "88 mins";
$Results[1]['cert'] = "18";

// Will basically show the above in order.
foreach($Results as value) {
     echo $Results[$value]['title'];
     echo $Results[$value]['run_time'];
     echo $Results[$value]['cert'];
}

// Lets add some more as I need to do this in Java too

$Results[2]['title'] = "Saving Private Ryan";
$Results[2]['run_time'] = "153 mins";
$Results[2]['cert'] = "15";

// Lets remove the first one as an example of another need
$Results[0] = null;
?>

我听说有“列表迭代器”或者非常适合滚动这样的数据的东西。也许可以用它来实现?

在这种情况下,一个完全正常工作的.java文件最方便,包括如何在数组中添加和删除项目。

P.S。我打算在遥远的未来将它用于Android应用程序,所以,希望它也应该在Android上运行得很好,不过,我想这种东西适用于任何与Java有关的东西:)。

2 个答案:

答案 0 :(得分:4)

如果我在Java中这样做,我会做出以下更改:

  1. 创建一个封装电影数据的Movie
  2. 使用List代替本机数组
  3. Movie类看起来像这样:

    public class Movie {
    
        public final String title;
        public final int runtime;
        public final int cert;
    
        public Movie(String title, int runtime, int cert) {
            this.title = title;
            this.runtime = runtime;
            this,cert = cert;
        }
    }
    

    然后你可以像这样制作电影列表:

    List<Movie> movies = new ArrayList<Movie>();
    movies.add(new Movie("Some Movie", 120, 15);
    movies.add(new Movie("Another Movie", 90, 18);
    

    您可以删除电影,如下所示:

    movies.remove(0);
    

    你可以像这样迭代它们:

    for (Movie m: movies) {
        System.out.println("Title: " + m.title + 
                           ", Runtime: " + m.runtime + 
                           ", Cert: " + m.cert);
    }
    

    如果您想从列表中获取特定内容,可以执行以下操作:

    Movie the2ndOne = movies.get(1);
    System.out.println("Title: " + the2ndOne.title); // or
    System.out.println("Title: " + movies.get(0).title);
    

    要查看整个List,只需执行以下操作:

    System.out.println(movies.toString());
    

    注意:这假定Movie类具有为其编写的智能toString()方法。

    有关上面显示的List的更多参考信息,请查看javadocs上的内容。

    使用OO语言编写时,应使用OO原则。

    阅读this问题及其答案可能也会有所帮助。它非常相似,因为你们两个都在尝试使用最好使用类来提供服务的数组。

答案 1 :(得分:2)

您可以先创建一个定义数据结构的类,然后构建这些对象的ArrayList以实际存储值。 ArrayList是Java中可用的许多Collection之一,它提供了许多方法来迭代它们并添加或删除项目。

例如:您的课程可能如下:

class Movie{

String title;
String run_time;
String cert;
...//getter,setter methods for these instance variables/fields
}

// you then create movie objects and populate some data in them
Movie one = new Movie();

one.setTitle("No Country for..");
one.setRunTime("122 mins");
one.setCert("15");

//create arrayList to store movie objects
ArrayList<Movie> list = new ArrayList<Movie>();

//add item to list
list.add(one);

// iterate over arrayList to get values
for(Movie item:list){
System.out.println(item.getTitle());
}

参考:ArrayList