Java与PHP中相同的多数组/对象

Java与PHP中相同的多数组/对象,java,Java,在PHP中,我可以: $array = array(); for($i = 0; $i < 10; $i++){ $array[$i]['title'] = "title" . $i; $array[$i]['text'] = "text" . $i; } $array=array(); 对于($i=0;$i如代码>标题>代码>或代码>文本< /代码>,您可以考虑创建一个定义这些字段的字段。如果对象之间的字段名称集可能不同,则字符串键和字符串值也可以使用 要创建长度可能会更

在PHP中,我可以:

$array = array();

for($i = 0; $i < 10; $i++){
   $array[$i]['title'] = "title" . $i;
   $array[$i]['text'] = "text" . $i;
}
$array=array();
对于($i=0;$i<10;$i++){
$array[$i]['title']=“title”。$i;
$array[$i]['text']=“text”。$i;
}
我如何用Java制作它?为什么我不能在索引数组中使用文本?也许我必须使用对象,但如何使用

下一个问题-在Java中,我必须用元素数声明数组,但有时我会得到一个不知道有多少元素的列表,在列表中,我还使用指令“IF”跳过一些元素

您可以制作一个
列表

更多信息:

由于您使用的是Java 6,请使用完整的作业:

List<Map<String, String>> listOfMap = new ArrayList<Map<String, String>>();
//...
Map<String, String> map = new HashMap<String, String>();
//...
List<Entity> entityList = new ArrayList<Entity>();
List listOfMap=new ArrayList();
//...
Map Map=newhashmap();
//...
List entityList=新建ArrayList();

Java数组设计为一个数字索引连续固定宽度集合,其顺序允许复制

<> >如代码>标题>代码>或代码>文本< /代码>,您可以考虑创建一个定义这些字段的字段。如果对象之间的字段名称集可能不同,则字符串键和字符串值也可以使用


要创建长度可能会更改的数组,请使用where
Foo
作为您希望列表包含的对象类。

关于PHP的一个重要注意事项是,几乎所有内容都被视为一个数组。这意味着“数组”实际上是从某个键到某个值的映射:该键可以是任何东西,因为PHP是弱类型的

Java是一种“严格类型语言”,这意味着它的数组概念只是一个索引元素序列:

String arr[] = new String[3];//This array will be numerically indexed by integers and only integers.
//Note, too, that it will be length three, and never any other length.
请注意,上面使用了一个“数组原语”,其中数组不是从Java的
对象派生的。您可以通过使用基于类的对象来使用完整类

如果想要获得与PHP相同的功能,就必须使用某种映射。例如:

Map<String, Object> arr = new HashMap<String, Object>();
for (int x = 0; x < 10; x++) {
  arr.put(Integer.toString(x), "title" + x);
}

欢迎使用堆栈溢出,请使用。请阅读。Java最佳实践是为此使用适当的类,而不是非类型化数组或
映射
。请花一点时间阅读Java初学者手册,或在上学习Oracle教程,特别注意Louis Wasserman的+1。Java是一种类型安全的OO语言。假设您想存储多条消息,每条消息都有一个标题和一个文本,那么您应该创建一个
消息
类,该类具有两个属性
标题
文本
,并使用
列表
。谢谢,但我在以下方面有错误:arr.put((字符串)x,“title”+x);-“无法从int转换为String”我对从原语到字符串的转换投了反对票——你需要使用
Integer.toString(int)
。是的,我总是忘记语法冲突值得投反对票。我不确定这是否是讽刺,但在这种情况下,对于一个显然不熟悉语法的用户,细节很重要。但是,在你出于某种原因修正了否决票之后,我不会收回否决票(当然,欢迎您随心所欲地投票。不过,总的来说,我认为如果您使用“编辑”选项并解决问题,对社区更有用,特别是当它与文章的主旨正交时。谢谢,但对于您的第一个示例,我有个错误:““”运算符不允许用于低于1.7的源代码级别”。我有一个Android项目。@peksak-answer-fixed@peksak:如果你的问题是关于Android的,请在你的问题中添加Android标签。谢谢,但你能给我一个准备好的例子吗?我是Java新手。
String arr[] = new String[3];//This array will be numerically indexed by integers and only integers.
//Note, too, that it will be length three, and never any other length.
Map<String, Object> arr = new HashMap<String, Object>();
for (int x = 0; x < 10; x++) {
  arr.put(Integer.toString(x), "title" + x);
}
List<Integer, Map<String, Object>> useLists;
Map<String, Object> usePrimitiveArrays[];