Tôi đang cố gắng chuyển đổi một double[]
thành float[]
bằng cách sử dụng tính toán Java 8 lambda. Cho đến nay, tôi vừa tạo ra một phương pháp đồ chơi cần được sửa đổi. Đang cố gắng tìm trợ giúp để chuyển đổi các mảng nguyên thủy. Chủ yếu là, có cách tiếp cận nào để loại bỏ chuyển đổi ổi vì chuyển đổi sang Danh sách và ngược lại quá nặng đối với các mảng lớn.Lambda trên mảng nguyên thủy
import com.google.common.primitives.Floats;
public static float[] doubleToFloat(double[] vector) {
Float[] f = Arrays.stream(vector).<Float>mapToObj(x -> (float) x).toArray(Float[]::new);
return Floats.toArray(Arrays.asList(f));
}
Điều thú vị là không có luồng chuyên biệt cho 'Float' - chỉ có' IntStream', 'DoubleStream' và' LongStream' được xác định trước. Đối với 'float', nó chỉ có thể là trường hợp mà bạn phải làm tất cả công việc khó sử dụng này. – Makoto
Tại sao nó cần phải được thực hiện bằng cách sử dụng tính toán lambda? –
@pbabcdefp để thử nghiệm. Cố gắng tìm một cách gọn gàng để thoát khỏi vòng lặp –