最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法總結(jié)

 更新時(shí)間:2024年12月30日 10:24:52   作者:風(fēng)_流沙  
在日常的Java開(kāi)發(fā)中經(jīng)常會(huì)遇到需要在數(shù)組和List之間進(jìn)行轉(zhuǎn)換的情況,這篇文章主要給大家介紹了關(guān)于java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

在Java中,List 和 數(shù)組(Array) 之間的轉(zhuǎn)換是一個(gè)常見(jiàn)的操作。由于它們是不同的數(shù)據(jù)結(jié)構(gòu),Java提供了一些方法來(lái)在它們之間進(jìn)行轉(zhuǎn)換。我們會(huì)從List到數(shù)組和數(shù)組到List兩種情況分別討論。

1. List 轉(zhuǎn) 數(shù)組

假設(shè)你有一個(gè) `List` 類(lèi)型的對(duì)象,想要將其轉(zhuǎn)換為一個(gè)數(shù)組。你可以使用 List`類(lèi)的 toArray()方法。

 (a) List 轉(zhuǎn) 數(shù)組(Object類(lèi)型)

最常見(jiàn)的轉(zhuǎn)換是將一個(gè) `List` 轉(zhuǎn)換為一個(gè)普通的對(duì)象數(shù)組 `Object[]`,方法如下:

import java.util.List;
import java.util.ArrayList;

public class ListToArrayExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)List
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        // 將List轉(zhuǎn)換為數(shù)組(Object類(lèi)型)
        Object[] array = list.toArray();

        // 輸出結(jié)果
        for (Object obj : array) {
            System.out.println(obj);
        }
    }
}

在這個(gè)例子中,`list.toArray()` 返回的是一個(gè) `Object[]` 類(lèi)型的數(shù)組。此時(shí)數(shù)組的元素類(lèi)型是 `Object`,如果需要更具體的類(lèi)型,可以強(qiáng)制轉(zhuǎn)換。

 (b) List 轉(zhuǎn) 數(shù)組(指定類(lèi)型)

如果你知道 List 中存儲(chǔ)的是某個(gè)具體類(lèi)型的元素(比如 `String`),你可以使用 `toArray(T[] a)` 方法來(lái)指定數(shù)組的類(lèi)型,從而避免轉(zhuǎn)換時(shí)的強(qiáng)制類(lèi)型轉(zhuǎn)換:

import java.util.List;
import java.util.ArrayList;

public class ListToArrayExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)List
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        // 將List轉(zhuǎn)換為數(shù)組(指定類(lèi)型)
        String[] array = list.toArray(new String[0]);

        // 輸出結(jié)果
        for (String str : array) {
            System.out.println(str);
        }
    }
}

在這個(gè)例子中,list.toArray(new String[0]) 生成了一個(gè)類(lèi)型為 String[]的數(shù)組。new String[0]表示傳入的數(shù)組大小,實(shí)際上該數(shù)組的大小會(huì)根據(jù) List 的元素?cái)?shù)自動(dòng)調(diào)整。

 (c) 對(duì)于更復(fù)雜的 List 類(lèi)型

如果你的 List 中包含自定義類(lèi)型(比如一個(gè) `Person` 類(lèi)),轉(zhuǎn)換的方法和上述類(lèi)似:

import java.util.List;
import java.util.ArrayList;

class Person {
    String name;
    int age;

    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return name + ", " + age;
    }
}

public class ListToArrayExample {
    public static void main(String[] args) {
        List<Person> list = new ArrayList<>();
        list.add(new Person("Alice", 30));
        list.add(new Person("Bob", 25));

        // 將List轉(zhuǎn)換為Person類(lèi)型的數(shù)組
        Person[] array = list.toArray(new Person[0]);

        // 輸出結(jié)果
        for (Person person : array) {
            System.out.println(person);
        }
    }
}

2. 數(shù)組 轉(zhuǎn) List

如果你有一個(gè)數(shù)組,想要將其轉(zhuǎn)換為一個(gè) `List`,你可以通過(guò) `Arrays.asList()` 方法來(lái)實(shí)現(xiàn)。

 (a) 數(shù)組 轉(zhuǎn) List(基本數(shù)據(jù)類(lèi)型)

對(duì)于一個(gè)簡(jiǎn)單的數(shù)組(如 `int[]` 或 `String[]`),你可以這樣做:

import java.util.Arrays;
import java.util.List;

public class ArrayToListExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)數(shù)組
        String[] array = {"A", "B", "C"};

        // 將數(shù)組轉(zhuǎn)換為L(zhǎng)ist
        List<String> list = Arrays.asList(array);

        // 輸出結(jié)果
        for (String str : list) {
            System.out.println(str);
        }
    }
}

 (b) 數(shù)組 轉(zhuǎn) List(原始類(lèi)型數(shù)組)

注意,`Arrays.asList()` 方法對(duì)于原始類(lèi)型數(shù)組(如 `int[]`, `double[]` 等)并不會(huì)返回一個(gè) `List<Integer>` 或 `List<Double>` 等類(lèi)型的 `List`,而是會(huì)返回一個(gè) `List<int[]>` 類(lèi)型的 List。要避免這個(gè)問(wèn)題,你需要將原始類(lèi)型數(shù)組包裝成相應(yīng)的包裝類(lèi)數(shù)組,然后再使用 `Arrays.asList()`。

import java.util.Arrays;
import java.util.List;

public class ArrayToListExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)int數(shù)組
        int[] array = {1, 2, 3};

        // 將int數(shù)組包裝為Integer數(shù)組
        Integer[] boxedArray = Arrays.stream(array).boxed().toArray(Integer[]::new);

        // 將Integer數(shù)組轉(zhuǎn)換為L(zhǎng)ist
        List<Integer> list = Arrays.asList(boxedArray);

        // 輸出結(jié)果
        for (Integer num : list) {
            System.out.println(num);
        }
    }
}

 (c) 數(shù)組 轉(zhuǎn) List(自定義對(duì)象數(shù)組)

如果你有一個(gè)自定義類(lèi)型的數(shù)組,使用 `Arrays.asList()` 同樣適用:

import java.util.Arrays;
import java.util.List;

class Person {
    String name;
    int age;

    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return name + ", " + age;
    }
}

public class ArrayToListExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)Person類(lèi)型的數(shù)組
        Person[] array = {new Person("Alice", 30), new Person("Bob", 25)};

        // 將數(shù)組轉(zhuǎn)換為L(zhǎng)ist
        List<Person> list = Arrays.asList(array);

        // 輸出結(jié)果
        for (Person person : list) {
            System.out.println(person);
        }
    }
}

3. 注意事項(xiàng)

 (a) `Arrays.asList()` 的限制

- 使用 `Arrays.asList()` 創(chuàng)建的 List 是一個(gè) **固定大小 的 List,這意味著你不能向 List 中添加或刪除元素。如果試圖進(jìn)行這樣的操作,會(huì)拋出 `UnsupportedOperationException`。

例如:  

 List<String> list = Arrays.asList("A", "B", "C");
 list.add("D");  // 運(yùn)行時(shí)拋出 UnsupportedOperationException

  如果你需要一個(gè)可修改的 List,應(yīng)該將其包裝在一個(gè)新的 `ArrayList` 中:

 List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
 list.add("D");  // 現(xiàn)在可以修改

(b) 通過(guò) `toArray()` 方法進(jìn)行類(lèi)型轉(zhuǎn)換

如果 List 的類(lèi)型不是你想要的類(lèi)型(例如 List 存儲(chǔ)了類(lèi)型為 `Object` 的元素),可以在進(jìn)行轉(zhuǎn)換時(shí)強(qiáng)制類(lèi)型轉(zhuǎn)換。例如:

Object[] objArray = list.toArray();
String[] strArray = (String[]) objArray;  // 強(qiáng)制轉(zhuǎn)換為 String[]

(c) 對(duì)于原始類(lèi)型數(shù)組

Java 沒(méi)有直接將原始類(lèi)型數(shù)組(如 `int[]`, `double[]`)轉(zhuǎn)換為 List 的方法。你可以先將原始類(lèi)型數(shù)組轉(zhuǎn)換為包裝類(lèi)數(shù)組,然后再用 `Arrays.asList()` 方法轉(zhuǎn)換成 List。例如:

int[] array = {1, 2, 3};
Integer[] boxedArray = Arrays.stream(array).boxed().toArray(Integer[]::new);
List<Integer> list = Arrays.asList(boxedArray);

總結(jié)

- List 轉(zhuǎn) 數(shù)組:使用 `toArray()` 方法。對(duì)于類(lèi)型化的 List,推薦使用 `toArray(T[] a)` 方法,這樣可以避免不必要的類(lèi)型轉(zhuǎn)換。
- 數(shù)組 轉(zhuǎn) List:使用 `Arrays.asList()` 方法,但要注意原始類(lèi)型數(shù)組的特殊情況(它們會(huì)被轉(zhuǎn)換為一個(gè)包含數(shù)組的 List),并且返回的 List 是固定大小的,不能進(jìn)行添加或刪除元素的操作。

到此這篇關(guān)于java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法的文章就介紹到這了,更多相關(guān)java list和數(shù)組互相轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

万州区| 江口县| 通河县| 卢氏县| 夹江县| 咸阳市| 定日县| 玉门市| 曲麻莱县| 哈尔滨市| 奈曼旗| 都昌县| 南平市| 乐平市| 齐齐哈尔市| 富蕴县| 桃园县| 德阳市| 吉水县| 金坛市| 苗栗市| 祁东县| 甘南县| 银川市| 蒙自县| 新安县| 工布江达县| 夹江县| 沧州市| 贵州省| 宣恩县| 宣化县| 凤山县| 峨山| 南乐县| 那曲县| 宁乡县| 阿拉尔市| 沈阳市| 登封市| 江陵县|