簡體   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