我来自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有关的东西:)。
答案 0 :(得分:4)
如果我在Java中这样做,我会做出以下更改:
Movie
类List
代替本机数组 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