专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

stusetName_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 1:11:56       共计:3587 浏览

stusetName?

你debug的结果是没有问题的,我不太明白你疑惑的知识点在哪,我从以下几个方面回答这个问题。

一、List集合是不去重的

在解释上面的原因之前,我们要知道一下两个知识点

第一个知识点:List集合底层数据结构是一个数组,所以数组的下标可以放任意泛型的数据,包括重复数据。第二个知识点:Set集合底层是用HashMap实现的,它每一个元素都不能重复。

例如:

1)List<String>list = new ArrayList();

list.add("a");

list.add("a");

list.add("a");

向这种如果迭代输出,会输出3次,a.list的长度也是3.

2)Set<String>set = new HashSet();

set.add("a");

set.add("a");

set.add("a");

像这种Set添加重复元素,会进行覆盖,此时Set集合中只有一个元素。

第一个List:因为对象的创建是在循环外,for的每一次循环,并没有创建新的对象,只是每一次for循环把同一个对象的属性值做了修改。所以循环10次,虽然集合的长度为10,但是属于同一个对象。

第二个List:在循环外创建了一个对象的引用,但是对象的创建都是在每一个for循环创建的,没循环一次,外面的那个引用就纸箱了一个新的对象,所以循环10次,创建了10个对象。

第三个List:对象的创建在循环里面,和第二个相同,每一次for循环也创建了一个对象,所以循环10次,创建了10个对象。

如果是Set集合,则第一种情况只会输出一个对象,第二种和第三种情况则会输出10个对象

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:学编程先学python_java | ·下一条:吉他c和弦与g和弦的区别_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有