繁体   English   中英

ArrayList和String [] AND Object []

[英]ArrayList and String[] AND Object[]

我搜索了这个,但找不到我需要的东西,所以我创建了一个新帖子。 我希望了解这个问题。 谢谢。

ArrayList<String> arraylist= new ArrayList<String>();
arraylist.add("Nguyen");
arraylist.add("Viet");

String[] name={"Quan","Doan","Thi","Ha"};
arraylist.add(name);// error here 

ArrayList<Object> arraylist1=new ArrayList<Object>();
arraylist1.add("Nguyen");
arraylist1.add("Viet");
Object[] name1={"Quan","Doan","Thi","Ha"};
arraylist1.add(name1);// not error

有人可以解释当我将name传递给add()方法然后我得到一个错误,但是当我将name1传递给add()方法时,它工作正常,为什么会这样...

arraylist是String元素的ArrayList,因此您无法向其添加数组实例。 arraylist1Object元素的ArrayList ,因此您可以向其添加数组,因为数组是Object

如果您希望将数组的各个元素添加到List ,则两个add调用都应更改为addAll

arrayList.addAll(Arrays.asList(name));
arraylist1.addAll(Arrays.asList(name1));
arraylist.add(name);// error here 

错误,因为name是一个数组。 不是String 您正在尝试将Array对象添加到仅接受字符串的ArrayList。

arraylist1.add(name1);// not error

没有错误,因为name1是一个Object数组。 在Java中, 每个类都是一个Object,甚至一个Object数组也是一个Object 因此它接受它作为对象。 虽然你的name1是一个Objects数组,但作为一个整体,它首先是一个Object。

当你这样做时,你似乎在想

String[] name={"Quan","Doan","Thi","Ha"};
arraylist.add(name);// error here 

它应该将数组的所有元素添加到列表中。 这不是真的。 add方法只是将它给出的一个参数添加到列表中。

在第一种情况下,一个元素是一个字符串数组。 字符串数组本身不是字符串,因此失败。

在第二种情况下,一个元素是一个对象数组。 对象数组本身就是一个对象,因此它被添加到列表中。 但请注意,添加了数组 ,而不是其中的对象。

第一个示例抛出一个错误,因为您声明了一个StringsArrayList ,但后来尝试添加一个Strings Array (不是String ,但是一collection Strings )。

第二个例子是有效的,因为你声明了Objects ArrayList ,然后你向它添加了Objects (理解Java中的所有东西都是一个Object :一个String是一个Object ,一个Array也是例如一个Boolean也是一个Object ,你可以尝试添加在第二个示例中为True ,您将看到它也可以工作)。

在这里,我看到一些对StringString[]误解都不相同,同时看到你的下面的代码

String[] name={"Quan","Doan","Thi","Ha"};
arraylist.add(name);// error here

好像你正试图添加String[]对象为ArrayList类型的String 如果要将name数组添加到列表中,则列表类型必须为String[] 因此,因为类型不同所以你不能将String[]对象添加到String类型的列表中。 但是当你有Object类型的列表时,你当然可以在其中添加任何对象。

IDE清楚地告诉我们对象数据类型。

第一个代码片段

In this error code snippet:
ArrayList<String> arraylist= new ArrayList<String>();
arraylist.add("Nguyen");
arraylist.add("Viet");
String[] name={"Quan","Doan","Thi","Ha"};
arraylist.add(name);

在此输入图像描述 在第6行,名为arraylist对象具有类型ArrayList<java.lang.String>但您尝试这样的事情: ArrayList<java.lang.String[]>导致不兼容数据类型错误。

第二个代码段

ArrayList<Object> arraylist1=new ArrayList<Object>();
arraylist1.add("Nguyen");
arraylist1.add("Viet");
Object[] name1={"Quan","Doan","Thi","Ha"};
arraylist1.add(name1);

在此输入图像描述 当步骤调试到第10行时, name1的数据类型为java.lang.Objectarraylist1数据类型为ArrayList<Object> 因此,将元素name1添加到arraylist1成功。

转换 ArrayList<object> 串起来<div id="text_translate"><p>嗨,我正在尝试练习 java,我才刚刚开始。 为了练习,我正在尝试构建一个简单的扑克游戏,但遇到了卡片数组列表,我正在尝试将其打印出来,但只有控制台的地址是 output。 自然我尝试使用.toString 方法并创建我自己的toString 方法来尝试检查数组列表是否输入正确。 Bellow 是我的卡片 class 和 Arraylist{Card}Deck。 贝娄是我的代码</p><pre>package poker; import java.util.ArrayList; public class Card { private String _suit; private int _cardNum; public Card(int cardNum, String suit) { _suit = suit; _cardNum = cardNum; } public String toString() { return _suit +_cardNum; } static ArrayList&lt;`enter code here`Card&gt; Deck = new ArrayList&lt;Card&gt;() {{ add(new Card(0,"Hearts")); add(new Card(1,"Hearts")); add(new Card(1,"Hearts")); add(new Card(2,"Hearts")); add(new Card(3,"Hearts")); add(new Card(4,"Hearts")); add(new Card(5,"Hearts")); add(new Card(6,"Hearts")); add(new Card(7,"Hearts")); add(new Card(8,"Hearts")); add(new Card(9,"Hearts")); add(new Card(10,"Hearts")); add(new Card(11,"Hearts")); add(new Card(12,"Hearts")); add(new Card(13,"Hearts")); add(new Card(0,"Spades")); add(new Card(1,"Spades")); add(new Card(2,"Spades")); add(new Card(3,"Spades")); add(new Card(4,"Spades")); add(new Card(5,"Spades")); add(new Card(6,"Spades")); add(new Card(7,"Spades")); add(new Card(8,"Spades")); add(new Card(9,"Spades")); add(new Card(10,"Spades")); add(new Card(11,"Spades")); add(new Card(12,"Spades")); add(new Card(13,"Spades")); add(new Card(0,"Clubs")); add(new Card(1,"Clubs")); add(new Card(2,"Clubs")); add(new Card(3,"Clubs")); add(new Card(4,"Clubs")); add(new Card(5,"Clubs")); add(new Card(6,"Clubs")); add(new Card(7,"Clubs")); add(new Card(8,"Clubs")); add(new Card(9,"Clubs")); add(new Card(10,"Clubs")); add(new Card(11,"Clubs")); add(new Card(12,"Clubs")); add(new Card(13,"Clubs")); add(new Card(0,"Diamonds")); add(new Card(1,"Diamonds")); add(new Card(2,"Diamonds")); add(new Card(3,"Diamonds")); add(new Card(4,"Diamonds")); add(new Card(5,"Diamonds")); add(new Card(6,"Diamonds")); add(new Card(7,"Diamonds")); add(new Card(8,"Diamonds")); add(new Card(9,"Diamonds")); add(new Card(10,"Diamonds")); add(new Card(11,"Diamonds")); add(new Card(12,"Diamonds")); add(new Card(13,"Diamonds")); }}; }</pre><p> 和我的 MainApp</p><pre> package poker; import java.util.Random; import static java.lang.System.out; public class MainApp { public static void main(String[] args) { for(int i = 0;i &lt;Card.Deck.size();i++) { out.println(Card.toString()); } } }</pre><p> 在打印行中是我的问题发生的地方。 如何将 arraylist 从 class 类型转换为用于输出的字符串? 提前致谢!</p></div></object>

[英]Convert ArrayList<Object> to string

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 数组列表 <Object> 到ArrayList <String> 比较对象ArrayList和String ArrayList 转换ArrayList <String> 到ArrayList <Object> 数组列表 <String> 对象分配 arraylist:将 object 与字符串进行比较 将对象强制转换为ArrayList <String> 转换 ArrayList<object> 串起来<div id="text_translate"><p>嗨,我正在尝试练习 java,我才刚刚开始。 为了练习,我正在尝试构建一个简单的扑克游戏,但遇到了卡片数组列表,我正在尝试将其打印出来,但只有控制台的地址是 output。 自然我尝试使用.toString 方法并创建我自己的toString 方法来尝试检查数组列表是否输入正确。 Bellow 是我的卡片 class 和 Arraylist{Card}Deck。 贝娄是我的代码</p><pre>package poker; import java.util.ArrayList; public class Card { private String _suit; private int _cardNum; public Card(int cardNum, String suit) { _suit = suit; _cardNum = cardNum; } public String toString() { return _suit +_cardNum; } static ArrayList&lt;`enter code here`Card&gt; Deck = new ArrayList&lt;Card&gt;() {{ add(new Card(0,"Hearts")); add(new Card(1,"Hearts")); add(new Card(1,"Hearts")); add(new Card(2,"Hearts")); add(new Card(3,"Hearts")); add(new Card(4,"Hearts")); add(new Card(5,"Hearts")); add(new Card(6,"Hearts")); add(new Card(7,"Hearts")); add(new Card(8,"Hearts")); add(new Card(9,"Hearts")); add(new Card(10,"Hearts")); add(new Card(11,"Hearts")); add(new Card(12,"Hearts")); add(new Card(13,"Hearts")); add(new Card(0,"Spades")); add(new Card(1,"Spades")); add(new Card(2,"Spades")); add(new Card(3,"Spades")); add(new Card(4,"Spades")); add(new Card(5,"Spades")); add(new Card(6,"Spades")); add(new Card(7,"Spades")); add(new Card(8,"Spades")); add(new Card(9,"Spades")); add(new Card(10,"Spades")); add(new Card(11,"Spades")); add(new Card(12,"Spades")); add(new Card(13,"Spades")); add(new Card(0,"Clubs")); add(new Card(1,"Clubs")); add(new Card(2,"Clubs")); add(new Card(3,"Clubs")); add(new Card(4,"Clubs")); add(new Card(5,"Clubs")); add(new Card(6,"Clubs")); add(new Card(7,"Clubs")); add(new Card(8,"Clubs")); add(new Card(9,"Clubs")); add(new Card(10,"Clubs")); add(new Card(11,"Clubs")); add(new Card(12,"Clubs")); add(new Card(13,"Clubs")); add(new Card(0,"Diamonds")); add(new Card(1,"Diamonds")); add(new Card(2,"Diamonds")); add(new Card(3,"Diamonds")); add(new Card(4,"Diamonds")); add(new Card(5,"Diamonds")); add(new Card(6,"Diamonds")); add(new Card(7,"Diamonds")); add(new Card(8,"Diamonds")); add(new Card(9,"Diamonds")); add(new Card(10,"Diamonds")); add(new Card(11,"Diamonds")); add(new Card(12,"Diamonds")); add(new Card(13,"Diamonds")); }}; }</pre><p> 和我的 MainApp</p><pre> package poker; import java.util.Random; import static java.lang.System.out; public class MainApp { public static void main(String[] args) { for(int i = 0;i &lt;Card.Deck.size();i++) { out.println(Card.toString()); } } }</pre><p> 在打印行中是我的问题发生的地方。 如何将 arraylist 从 class 类型转换为用于输出的字符串? 提前致谢!</p></div></object> 将String对象添加到ArrayList 转换ArrayList <String[]> 转换为String [] []或Object [] [] 如何填充ArrayList <String> 从ArrayList <Object>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM