簡體   English   中英

將原始向量轉換為安全列表類型的最佳方法是什么(Arraylist)

[英]What is the best way to convert a raw vector to type safe list(Arraylist)

我有一個返回原始向量的函數。 我知道向量中的所有元素都是字符串,但是由於遺留原因,代碼仍然保留。 我想從此數據獲取一個arraylist。

一種幼稚的方法是迭代向量並將元素添加到列表中。 是否有任何簡短的方法可以防止循環。 或者可以是啟用此功能的直接功能。

編輯:

例:

Vector f1() {}  //f1 returns raw vector

我要實現以下目標:

List<String> l = new ArrayList<String>();
Vector vec = f1();
for(Object obj: vec) {
    l.add((String) obj);
}

注意:我沒有檢查上面的代碼是否編譯。 請把它當作偽代碼

如果你100%確定Vector只包含字符串,最簡單的方法是:

List<String> list = new ArrayList<>(vector);

請注意,即使Vector包含其他類型的對象,這也將編譯並運行正常。 但是,這:

list.get(i);

如果第i個元素不是String,則拋出ClassCastException

由於您有原始的Vector,因此您會收到警告。 如果要擺脫它們,可以使用:

@SuppressWarnings(value = {"unchecked", "rawtypes"})
public static List<String> rawVectorToList(Vector v) {
    return new ArrayList<>(v);
}

快速檢測轉換問題的另一種方法是手動復制數組(復制構造函數在引擎蓋下執行的操作):

Vector v = ...;
String[] elements = Arrays.copyOf(v.toArray(), v.size(), String[].class);
List<String> list = Arrays.asList(elements);

或者如果您需要列表是可變的:

List<String> list = new ArrayList<> (Arrays.asList(elements));

這樣的好處是可以在復制時檢查類型。

轉換 ArrayList 列表的最佳方法是什么<object>到自定義 object java11 Spring 引導 2.1<div id="text_translate"><p> 我有 ArrayList 對象列表,其中對象可以是文本、BigDecimal、Long</p><pre> List&lt;Object&gt; data = { {"date","prize1","cardsNumers","cardObtained","totalCards","anotherPrize"}, {"2020-05-01",435345.67,43,56,67,345345345}, {"2020-03-01",45656.2,34,67,23,456456}, {"2020-02-01",56565,34,56,67,878987} }</pre><p> arrayList 中的第 1、2、3 等對象是第 0 個 arraylist 中提到的每個字段的值。 在如下表中,</p><p> <a href="https://i.stack.imgur.com/Tmdw2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Tmdw2.png" alt="在此處輸入圖像描述"></a></p><p> 我想從上面獲取每個文件的總和並分配給下面自定義 Object 的同一字段,</p><pre> public class SumObject { private Date date; private BigDecimal sumPrize1; private BigDecimal sumCardsNumers; private long sumCardObtained; private long sumTotalCards; private long sumAnotherPrize; }</pre><p> 我通過遍歷 List 中的 arrayList 來實現這一點,並通過 get(index) 方法獲取值。 但我想知道是否有任何其他好的方法可以做到這一點。</p><p> 如果有人有任何建議,請發布答案或給我一個我可以閱讀的文件的方向。</p><p> 提前致謝。</p></div></object>

[英]what would be best way to convert List of ArrayList<Object> to a custom object java11 Spring boot 2.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 這種原始類型分配是否類型安全? 名單 <T> = new ArrayList(); 在 ArrayList 線程安全上移動 object 的最佳方法是什么? 轉換 ArrayList 列表的最佳方法是什么<object>到自定義 object java11 Spring 引導 2.1<div id="text_translate"><p> 我有 ArrayList 對象列表,其中對象可以是文本、BigDecimal、Long</p><pre> List&lt;Object&gt; data = { {"date","prize1","cardsNumers","cardObtained","totalCards","anotherPrize"}, {"2020-05-01",435345.67,43,56,67,345345345}, {"2020-03-01",45656.2,34,67,23,456456}, {"2020-02-01",56565,34,56,67,878987} }</pre><p> arrayList 中的第 1、2、3 等對象是第 0 個 arraylist 中提到的每個字段的值。 在如下表中,</p><p> <a href="https://i.stack.imgur.com/Tmdw2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Tmdw2.png" alt="在此處輸入圖像描述"></a></p><p> 我想從上面獲取每個文件的總和並分配給下面自定義 Object 的同一字段,</p><pre> public class SumObject { private Date date; private BigDecimal sumPrize1; private BigDecimal sumCardsNumers; private long sumCardObtained; private long sumTotalCards; private long sumAnotherPrize; }</pre><p> 我通過遍歷 List 中的 arrayList 來實現這一點,並通過 get(index) 方法獲取值。 但我想知道是否有任何其他好的方法可以做到這一點。</p><p> 如果有人有任何建議,請發布答案或給我一個我可以閱讀的文件的方向。</p><p> 提前致謝。</p></div></object> Java:轉換ArrayList的最佳方法是什么 <Byte> 到byte []? 將 ArrayList 轉換為字符串的最佳方法 將Object ArrayList轉換為Double List的最佳方法是什么 有沒有辦法在 Java 中實現類型安全的向量? 轉換List的最佳方法是什么? <Byte> 列表 <Integer> 將字符數組列表轉換為字符串的最佳方法 將任何原始數據類型轉換為字符串的最佳方法是什么
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM