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

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

在同一鍵下具有多個(gè)值的HashMap

在同一鍵下具有多個(gè)值的HashMap

qq_遁去的一_1 2019-07-08 16:33:28
在同一鍵下具有多個(gè)值的HashMap我們可以用一個(gè)鍵和兩個(gè)值來實(shí)現(xiàn)HashMap嗎?就像HashMap一樣?請幫助我,也是通過告訴(如果沒有辦法)任何其他方式來實(shí)現(xiàn)三個(gè)值的存儲,其中一個(gè)作為關(guān)鍵?
查看完整描述

3 回答

?
米脂

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

我有一個(gè)帶有p值列的dataframe,我想對這些p值進(jìn)行選擇。


> pvalues_anova

[1] 9.693919e-01 9.781728e-01 9.918415e-01 9.716883e-01 1.667183e-02

[6] 9.952762e-02 5.386854e-01 9.997699e-01 8.714044e-01 7.211856e-01

[11] 9.536330e-01 9.239667e-01 9.645590e-01 9.478572e-01 6.243775e-01

[16] 5.608563e-01 1.371190e-04 9.601970e-01 9.988648e-01 9.698365e-01

[21] 2.795891e-06 1.290176e-01 7.125751e-01 5.193604e-01 4.835312e-04

選擇方式:


anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]

如果我在R中使用它,這個(gè)函數(shù)可以很好地工作,但是如果我在另一個(gè)應(yīng)用程序(銀河)中運(yùn)行它,沒有e-01G.4.835312e-04不會被扔出去。


還有其他方法來標(biāo)注p值嗎,比如0.0004835312而不是4.835312e-04?你可以:


使用以列表作為值的映射。Map<KeyType, List<ValueType>>.

創(chuàng)建一個(gè)新的包裝類,并將此包裝器的實(shí)例放在映射中。Map<KeyType, WrapperType>.

使用元組類(節(jié)省創(chuàng)建大量包裝器)。Map<KeyType, Tuple<Value1Type, Value2Type>>.

并排使用多重地圖。

實(shí)例

1.以列表為值的映射


// create our map

Map<String, List<Person>> peopleByForename = new HashMap<>();    


// populate it

List<Person> people = new ArrayList<>();

people.add(new Person("Bob Smith"));

people.add(new Person("Bob Jones"));

peopleByForename.put("Bob", people);


// read from it

List<Person> bobs = peopleByForename["Bob"];

Person bob1 = bobs[0];

Person bob2 = bobs[1];

這種方法的缺點(diǎn)是列表沒有綁定到兩個(gè)值。


2.使用包裝類


// define our wrapper

class Wrapper {

    public Wrapper(Person person1, Person person2) {

       this.person1 = person1;

       this.person2 = person2;

    }


    public Person getPerson1 { return this.person1; }

    public Person getPerson2 { return this.person2; }


    private Person person1;

    private Person person2;

}


// create our map

Map<String, Wrapper> peopleByForename = new HashMap<>();


// populate it

Wrapper people = new Wrapper();

peopleByForename.put("Bob", new Wrapper(new Person("Bob Smith"),

                                        new Person("Bob Jones"));


// read from it

Wrapper bobs = peopleByForename.get("Bob");

Person bob1 = bobs.getPerson1;

Person bob2 = bobs.getPerson2;

這種方法的缺點(diǎn)是,您必須為所有這些非常簡單的容器類編寫大量的鍋爐板代碼。


3.使用元組


// you'll have to write or download a Tuple class in Java, (.NET ships with one)


// create our map

Map<String, Tuple2<Person, Person> peopleByForename = new HashMap<>();


// populate it

peopleByForename.put("Bob", new Tuple2(new Person("Bob Smith",

                                       new Person("Bob Jones"));


// read from it

Tuple<Person, Person> bobs = peopleByForename["Bob"];

Person bob1 = bobs.Item1;

Person bob2 = bobs.Item2;

在我看來,這是最好的解決辦法。


4.多重地圖


// create our maps

Map<String, Person> firstPersonByForename = new HashMap<>();

Map<String, Person> secondPersonByForename = new HashMap<>();


// populate them

firstPersonByForename.put("Bob", new Person("Bob Smith"));

secondPersonByForename.put("Bob", new Person("Bob Jones"));


// read from them

Person bob1 = firstPersonByForename["Bob"];

Person bob2 = secondPersonByForename["Bob"];

此解決方案的缺點(diǎn)是,這兩個(gè)映射之間的關(guān)系并不明顯,編程錯(cuò)誤可能導(dǎo)致兩個(gè)映射不同步。


查看完整回答
反對 回復(fù) 2019-07-08
?
慕的地6264312

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

另一個(gè)不錯(cuò)的選擇是使用多值映射來自阿帕奇公域??匆幌?/trans>所有已知的實(shí)現(xiàn)類在頁面的頂部進(jìn)行專門的實(shí)現(xiàn)。

例子:

HashMap<K, ArrayList<String>> map = new HashMap<K, ArrayList<String>>()

可以用

MultiValuedMap<K, String> map = new MultiValuedHashMap<K, String>();

所以,

map.put(key, "A");map.put(key, "B");map.put(key, "C");Collection<String> coll = map.get(key);

會導(dǎo)致收集coll包含“A”、“B”和“C”。


查看完整回答
反對 回復(fù) 2019-07-08
  • 3 回答
  • 0 關(guān)注
  • 955 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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