第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Java 中懶惰地創(chuàng)建一個(gè)顏色映射

在 Java 中懶惰地創(chuàng)建一個(gè)顏色映射

小唯快跑啊 2023-04-26 14:38:16
我創(chuàng)建了一個(gè)函數(shù)來在 java 中創(chuàng)建顏色圖。final void setDefaultColourMap() {        colourMap = new HashMap<>();        colourMap.put(0, Color.BLACK);        colourMap.put(1, Color.RED);        colourMap.put(2, Color.GREEN);        colourMap.put(3, Color.BLUE);        colourMap.put(4, Color.PINK);        colourMap.put(5, Color.YELLOW);        colourMap.put(6, Color.CYAN);        colourMap.put(7, Color.ORANGE);        colourMap.put(8, Color.MAGENTA);        colourMap.put(9, Color.DARK_GRAY);        colourMap.put(10, Color.WHITE);        colourMap.put(11, Color.GRAY);        colourMap.put(12, Color.LIGHT_GRAY);    }我想創(chuàng)建一個(gè) java 流,當(dāng)請(qǐng)求顏色時(shí),它會(huì)生成一個(gè)新的隨機(jī)數(shù)并延遲返回一個(gè)隨機(jī)顏色。像惰性列表之類的東西。編輯:我讀過函數(shù)式編程范式支持惰性列表。例如,有一個(gè)斐波那契數(shù)列的列表,該列表理論上存儲(chǔ)列表中的所有元素,但實(shí)際上,會(huì)在請(qǐng)求時(shí)生成第 n 個(gè)元素。我想用一些邏輯來模擬惰性顏色映射。我生成的顏色圖只有 13 種顏色的輸入。我不想手動(dòng)輸入高達(dá)一百左右的值。我想模擬一個(gè)懶惰的彩色地圖。因此,當(dāng)我請(qǐng)求鍵為 35 的顏色時(shí),colorMap 是用一些最多為 35 的隨機(jī)顏色制定的,并返回第 35 個(gè)值。我基本上只能返回 35 并存儲(chǔ)它,但理想情況下,如果訪問 35,在我的擴(kuò)展程序中,您可以假設(shè)存在最大 35 的值。
查看完整描述

1 回答

?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

這是一個(gè)開始:


import java.awt.Color;

import java.util.HashMap;

import java.util.Random;


public class Main {


    public static void main(String[] args) {

        ColorMap map = new ColorMap();

        System.out.println(map.get(19));

        System.out.println(map.get(9));

        System.out.println(map.get(9));

        System.out.println(map.get(0));


        for(int key : map.keySet()){

            System.out.println(key);

        }

    }

}


class ColorMap extends HashMap<Integer, Color>{


    Random rand = new Random();


    @Override

    public Color get(Object key){


        if(! (key instanceof Integer)) return null;


        Color color = super.get(key);

        if(color == null){

            color = makeRandomColor();

            put((Integer) key,color);

        }

        return color;

    }


    private Color makeRandomColor(){

        return new Color( rand.nextFloat(), rand.nextFloat(), rand.nextFloat());

    }

}

編輯:要填充缺失值,您需要循環(huán)并檢查所有先前值:


import java.awt.Color;

import java.util.HashMap;

import java.util.Random;


public class Main {


    public static void main(String[] args) {

        ColorMap map = new ColorMap();

        System.out.println(map.get(19));


        for(int key : map.keySet()){

            System.out.println(key);

        }

    }

}


class ColorMap extends HashMap<Integer, Color>{


    Random rand = new Random();


    @Override

    public Color get(Object key){


        if(! (key instanceof Integer)) return null;

        int positiveIntKey = Math.abs((Integer) key);


        Color color = super.get(positiveIntKey);

        if(color == null){

            fillMapUpTo(positiveIntKey);

        }

        return super.get(positiveIntKey);

    }


    private void fillMapUpTo(Integer positiveIntKey) {


        for(int key = 0; key <= positiveIntKey; key++){

            if(super.get(key) == null){

                put(key,makeRandomColor());

            }

        }

    }


    private Color makeRandomColor(){

        return new Color( rand.nextFloat(), rand.nextFloat(), rand.nextFloat());

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)