將字符串集轉換爲字符串[]數組沒有問題,但是我在將整數集轉換爲int []數組時遇到問題。 如何將整數轉換爲其原始值?將整數集轉換爲int的問題[]數組
我似乎無法找到任何相關的問題。任何可以提供幫助的快速建議?
有時,不能使用自動裝箱,就像數組一樣。我不認爲一個整數數組會自動轉換爲一個整數數組。
將字符串集轉換爲字符串[]數組沒有問題,但是我在將整數集轉換爲int []數組時遇到問題。 如何將整數轉換爲其原始值?將整數集轉換爲int的問題[]數組
我似乎無法找到任何相關的問題。任何可以提供幫助的快速建議?
有時,不能使用自動裝箱,就像數組一樣。我不認爲一個整數數組會自動轉換爲一個整數數組。
可以撥打
Integer.intValue();
功能...
還是讓我知道你需要什麼:)
謝謝Piyush。我有一個去使用這個功能。 –
balus得到了正確的隊友!請接受答案,如果你喜歡它:) – MozenRath
string[]
不存在更多的細節,我想你的意思是String[]
。
若要將Set<Integer>
轉換爲int[]
,您必須手動迭代該設置。
像這樣:
Set<Integer> set = ...;
int[] arr = new int[set.size()];
int index = 0;
for(Integer i : set) {
arr[index++] = i; //note the autounboxing here
}
注意,集並沒有任何特定的順序,如果順序很重要,你需要使用SortedSet
。
是的大聲笑。那是我的意思托馬斯。抱歉錯字錯誤。謝謝你。 –
由於某種原因,它不允許每個循環中的元素類型都是整數。 –
然後它不是'Set
如果您使用Java 5+ Autoboxing應該照顧這個......!
你會得到什麼錯誤?
編輯:確定我看到..
像其他的說:你的設置
循環,只是把整數INT []內,自動裝箱應該轉換。
我想問題是,Set<Integer>.toArray
轉換爲Integer[]
,而不是int[]
。所以你沒有簡單的方法:你需要手動迭代整個集合並將其元素添加到int數組中。將個人Integer
轉換爲int
由Java 5及以上版本的自動裝箱處理。
這應該工作,假設自動拆箱!
Set<Integer> myIntegers; // your set
int[] ints = new int[myInts.size()];
int index = 0;
for(Integer i : myIntegers){
ints[index++] = i;
}
這就是爲什麼番石榴具有Ints.toArray(Collection<Integer>)
方法,返回int[]
。
使用Java 8+時遇到此問題的任何人都可以使用流。
int[] array = set.keySet().stream().mapToInt(i -> i).toArray();
不可能使用'toArray(T [])'。只需自行循環,讓自動裝箱就能完成它的工作。 – BalusC
你爲什麼要'int'? 「整數」不正確的任何具體原因? – Nivas