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

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

我可以擁有一個對象類型的 ArrayList,其中包含指向 Java 對象的指針列表嗎?

我可以擁有一個對象類型的 ArrayList,其中包含指向 Java 對象的指針列表嗎?

慕婉清6462132 2022-12-15 16:40:41
我目前有三個對象類,Transaction、User 和 Group。Transaction 收集:id、付款人、日期、描述、金額和涉及的用戶 ID 的 ArrayList。這非常有效,但通過遍歷用戶以查找哪個用戶是誰的方法添加了許多代碼行。我的問題是,我可以有一個 ArrayList *partecipants = new ArrayList; 哪個有所有用戶的參考?class Transaction{    private static AtomicInteger count = new AtomicInteger(0);    private int id = count.incrementAndGet();    private String paid;    private Date date;    private String message;    private Double amount;    private ArrayList<Integer> users = new ArrayList<Integer>();
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻1810條經(jīng)驗 獲得超4個贊

一個簡短的例子:


假設您有一個簡單的User課程:


public class User {

    private int id;

    private String name;


    // etc

}

假設您最初擁有其中List的一個:


List<User> users;

通過 id 查找用戶可以這樣完成:


users.stream().filter(u -> u.getId() == id).findFirst();

但是,如果用戶列表很大,那可能會很慢。


您可以將用戶存儲在Map:


Map<Integer, User> usersById;

這個地圖只會引用其他對象,所以占用空間很?。ǖ匀徽加靡恍┛臻g,就像一個索引)。


您可以像這樣填寫這張地圖:


usersById = users.stream().collect(Collectors.toMap(User::getId, Function.identity()));

或者更傳統(tǒng)地說:


usersById = new HashMap<>();


for(User u : users) {

    usersById.put(u.getId(), u);

}

現(xiàn)在要通過 id 查找用戶,您可以使用它(具有O(1)性能):


User user = usersById.get(id);


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 77 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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