Redian新闻
>
有否可以O(1)remove 一个元素的java LinkedList推荐?
avatar
有否可以O(1)remove 一个元素的java LinkedList推荐?# Programming - 葵花宝典
b*t
1
昨天申了AMEX被拒,说没有信用分
我上月批得第一张卡citi mtvu
5.4号出我第一个statment,想请问多久能报告到信用局更新?可能我是第一个月信用
历史,所以没有信用分?
打算过几天在申amex的卡(等信用分出来了后),想给本本延伸保修
没本用现在很急,谢谢大家了
什么时候能有信用分数出来?我想申AMEX clear
如果大家有窍门也告诉我一下吧,拜谢
avatar
f*e
2
java.util 的没法O(1)remove 一个元素,只能用o(n),因为他的Node是private的
我猜是因为这样比较不容易在并发的情况下出错
之前在c里面可以直接remove double linked list的元素,因为 pre, nxt 都在Node里
面,现在java, Node private了,没法做到
如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了,没法作为
永久存储
这样没法和 HashMap等等配合工作
高手有啥建议?
avatar
F*D
3
试试fidelity amex吧,也许简单些。

【在 b******t 的大作中提到】
: 昨天申了AMEX被拒,说没有信用分
: 我上月批得第一张卡citi mtvu
: 5.4号出我第一个statment,想请问多久能报告到信用局更新?可能我是第一个月信用
: 历史,所以没有信用分?
: 打算过几天在申amex的卡(等信用分出来了后),想给本本延伸保修
: 没本用现在很急,谢谢大家了
: 什么时候能有信用分数出来?我想申AMEX clear
: 如果大家有窍门也告诉我一下吧,拜谢

avatar
g*g
4
Iterator.remove() is an O(1) operation for LinkedList. If you have the
element and you want O(1) operation, you need to write your own double
linked list, which should be trivial enough.

【在 f***e 的大作中提到】
: java.util 的没法O(1)remove 一个元素,只能用o(n),因为他的Node是private的
: 我猜是因为这样比较不容易在并发的情况下出错
: 之前在c里面可以直接remove double linked list的元素,因为 pre, nxt 都在Node里
: 面,现在java, Node private了,没法做到
: 如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了,没法作为
: 永久存储
: 这样没法和 HashMap等等配合工作
: 高手有啥建议?

avatar
s*f
5
很多visa和master卡也有extended warranty
虽然未必有amex的好用
短时间内申卡被拒的可能性很大 多几个没有意义的hard pull实在不值得
lz急的话可以借朋友的amex卡买

【在 b******t 的大作中提到】
: 昨天申了AMEX被拒,说没有信用分
: 我上月批得第一张卡citi mtvu
: 5.4号出我第一个statment,想请问多久能报告到信用局更新?可能我是第一个月信用
: 历史,所以没有信用分?
: 打算过几天在申amex的卡(等信用分出来了后),想给本本延伸保修
: 没本用现在很急,谢谢大家了
: 什么时候能有信用分数出来?我想申AMEX clear
: 如果大家有窍门也告诉我一下吧,拜谢

avatar
f*e
6
的确是可以copy一个出来,暴露 Node,
有更好的方法吗?

【在 g*****g 的大作中提到】
: Iterator.remove() is an O(1) operation for LinkedList. If you have the
: element and you want O(1) operation, you need to write your own double
: linked list, which should be trivial enough.

avatar
I*t
7
mtvU有extended warranty的

【在 b******t 的大作中提到】
: 昨天申了AMEX被拒,说没有信用分
: 我上月批得第一张卡citi mtvu
: 5.4号出我第一个statment,想请问多久能报告到信用局更新?可能我是第一个月信用
: 历史,所以没有信用分?
: 打算过几天在申amex的卡(等信用分出来了后),想给本本延伸保修
: 没本用现在很急,谢谢大家了
: 什么时候能有信用分数出来?我想申AMEX clear
: 如果大家有窍门也告诉我一下吧,拜谢

avatar
l*s
8
如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了
I don't know java, but it sounds odd, why mutating an element needs to
invalidate a container iterator?
avatar
a*g
9
有就好,没有也别勉强
别弄了个收年费的卡为了搞保修,就不划算了
avatar
l*n
10
不会吧, iterator是Java实现generator的一种方式吧

【在 l*********s 的大作中提到】
: 如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了
: I don't know java, but it sounds odd, why mutating an element needs to
: invalidate a container iterator?

avatar
z*e
11
它说的应该是并发的问题
iterator就是一个enhanced loop
这个时候remove任何一个element都会导致concurrent modification exception的抛出
用弱循环就好了,或者用其他的并发类

【在 l*********s 的大作中提到】
: 如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了
: I don't know java, but it sounds odd, why mutating an element needs to
: invalidate a container iterator?

avatar
z*e
12
永久存储说的是persistence吗?
为啥要用list和serialisable捏?
找个db或者nosql存起来
不过这个问题怎么看都像是一个leetcode问题
avatar
g*g
13
You can't change a java list in a loop, but you can do remove on an iterator.

【在 l*********s 的大作中提到】
: 如果用iterator, 只要改变了 list中的任何一个元素,iterator 都失效了
: I don't know java, but it sounds odd, why mutating an element needs to
: invalidate a container iterator?

avatar
z*e
14
还是要区分一下强循环和弱循环
弱循环的话,是可以更改list的
boolean objRemoved = false;
for(int i=0;iif(list.get(i).equals(sth.)){
list.remove(i); //ok
objRemoved = true;
}
if(objRemoved)
objRemoved = false;
else
i++;
}
强循环会出问题
for(Obj obj:list){
list.remove(obj); //exception
}
iterator的话
Iterator iterator = list.iterator();
while(iterator.hasNext()){
list.remove(i.next()); //exception,类似强循环
iterator.remove(); //ok,类似弱循环
}

iterator.

【在 g*****g 的大作中提到】
: You can't change a java list in a loop, but you can do remove on an iterator.
avatar
l*s
15
了解了多谢各位大师了!
avatar
f*e
16
多谢解释,
我不应该用永久存储,就是放在另一个 数据结构里做reference, 感觉iterator 不合
适,因为可能被invalidate.

【在 z****e 的大作中提到】
: 永久存储说的是persistence吗?
: 为啥要用list和serialisable捏?
: 找个db或者nosql存起来
: 不过这个问题怎么看都像是一个leetcode问题

avatar
g*g
17
Leetcode LRU? 手写个double linked list就完了。

【在 f***e 的大作中提到】
: 多谢解释,
: 我不应该用永久存储,就是放在另一个 数据结构里做reference, 感觉iterator 不合
: 适,因为可能被invalidate.

avatar
f*e
18
我用的是暴露 Node

【在 g*****g 的大作中提到】
: Leetcode LRU? 手写个double linked list就完了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。