问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中set集合中元素不重复是根据什么来判断的19

发布网友 发布时间:2023-10-17 22:13

我来回答

3个回答

热心网友 时间:2024-12-02 15:08

可以考虑如下定义方式:
>> syms a b c d %%%%% 定义符号变量
>> a = [a b;c d] %%%%% 产生矩阵

a =

[ a, b]
[ c, d]

>> subs(a,{a,b,c,d},{1 2 3 4}) %%%%%%% 变量赋值

ans =

1 2
3 4

补充回答,也可以采用结构变量的方法,例如:
>> a = struct('x1',0,'x2',0,'x3',0,'x4',0); %%%%%% 定义结构变量a,并初始化
>> b = [a.x1 a.x2;a.x3 a.x4] %%%%%% 获取初始化矩阵

b =

0 0
0 0
>> a.x1 = 5; %%%%%% 变量赋值
>> a.x2 = 6;
>> a.x3 = 7;
>> a.x4 = 8;
>> b = [a.x1 a.x2;a.x3 a.x4] %%%%% 新矩阵

b =

5 6
7 8
变量a,矩阵B
直接写B(X,Y)=a就行
/**
* Adds the specified element to this set if it is not already present.
* More formally, adds the specified element e to this set if
* this set contains no element e2 such that
* (e==null ? e2==null : e.equals(e2)).
* If this set already contains the element, the call leaves the set
* unchanged and returns false.
*
* @param e element to be added to this set
* @return true if this set did not already contain the specified
* element
*/
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}以上是HashSet.add说明

1
1

热心网友 时间:2024-12-02 15:08

源码HashSet.add:
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}

源码HashMap.put:
public V put(K key, V value) {
if (key == null)
return putForNullKey(value);
int hash = hash(key.hashCode());
int i = indexFor(hash, table.length);
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
}

modCount++;
addEntry(hash, key, value, i);
return null;
}

由此可见,HashSet是根据放入object的hashcode做判断,然后遍历查找是否有hashcode值和键相同的元素。若存在则返回已有元素,不在entry里再添加
这段:
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
若不存在,返回null,并添加:
addEntry(hash, key, value, i);
return null;
然后你就能根据return map.put(e, PRESENT)==null; 这个得知你是否添加成功,换句话说就是是否存在。true添加成功不存在,false添加失败存在

因为只有继承了Object的类才具有hashcode,所以基本类型如int都是由他们的包装类
另外加一点泛型的知识,若你的Set用到了泛型,E则代表泛型类型。否则为Object

希望可以帮到你

热心网友 时间:2024-12-02 15:08

对象实例引用,类似于地址。基本类型是根据值,如Integer这些
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁能给个单机版的风云之雄霸天下啊?? 求风云雄霸天下PC单机游戏WIN7版 雄霸天下任务指南 开心网001老房子卖了以后家具还有吗? 为什么001开心网买房子组件删除仓库里的东西都没了 请教一下,开心001的开心庄园里面的建材有好多富余的的 除了5元一个卖... 开心网001小号怎么给大号送房子? 开心网001多少级能送别人房子?多少级能接受别人给的房子? 开心网001果实或家具能送人吗 开心网(kaixin001)怎么买外地房子? 想在洛阳找工作6 洛阳找工作的网站大家多提供几个吧? ...男孩,程姓,名字取单字。最好周易请帮忙,无示意不要 java集合迭代器打印两次第二次迭代输出就没有了1 我身体不好,庙里的师傅说我身上有保家仙,师傅让我立了牌位,牌位是这样... 洛阳哪个找工作的网站比较好2 我和养父的日子《二十》 我是一个新手。我想知道。我拿到了一块焊接好的板子。应该怎么调...4 关于自己手工焊的单片机不能实现控制功能的问题2 一千元左右的手机哪个比较好?求推荐10828 一千左右的手机哪几个牌子好?求推荐。1210 一千元左右的手机哪个比较好?求推荐2122 1000以下的手机有什么推荐?1208 为什么电脑开机后360加速球显示内存总在60%以上,怎样才能减少内存... 都说催眠治疗能让孩子成绩提高,这是真的吗?孩子初二,成绩很不... 一篇400字作文,主题是参观一个北京的博物馆。要求:重点介绍...14 昨天晚上给电三轮冲电今天早起闻到焦味:打开电瓶盒发现五块电瓶...1 3D博物馆观后感 400字3 我在淘宝上买了4双鞋垫共60元(每双15元),但卖家只给我发了两双,我应该... 为什么公司电脑可以上网,可以上QQ,可是就是发不了邮件和传送... 从上海到西藏的沿线城市(多条路径) ...自行车品牌Marmot土拨鼠,FRW辐轮王,Tyrell泰勒儿童自行车哪个最好... 烟熏裤一般会掉色吗? java 怎么判断两个 Set 里的对象的值是否相同13 关于一种蛇类 就是鸡冠蛇 很多人不知道这种蛇 但我小时候的确...3 小时候听我爸爸说有一种类似公鸡的蛇..蛇身.头上长有类似鸡冠...49 为什么微信电脑版一直发送不了文件和照片?18 给求职者推荐几个好用的找工作网站 鸡冠蛇的图片真实版480 有没有谁知道一种蛇 头上是红色像鸡冠一样 但通体全黑的蛇啊2 ...明名字取单字,男孩,2014年10月18日16点55分出生,如采纳给予100元酬 ... 我看到了头上长着鸡冠的蛇请问是什么蛇啊?31 3米长纯白蛇有什么品种 电动三轮车充电时打火电车里面的电没有了,是不是把电瓶烧了求解... nba2kol巨星陈列室徽章怎么得 nba2kol巨星陈列室分别要多少徽章1 仓鼠管家动画在线观看完整版视频高清如何下载 酒精会进入母乳吗 酒精会通过伤口进入到母乳吗 肾病透析是什么治疗,是不是病很严重了1