在局网站 作风建设方案阿里国际网站官网入口
news/
2025/10/3 8:11:15/
文章来源:
在局网站 作风建设方案,阿里国际网站官网入口,cfensi.wordpress,网站首页模板免费下载文章目录 1. Java集合概述2. HashSet3. 泛型 1. Java集合概述
Java 集合类存放于 java.util 包中#xff0c;是一个用来存放对象的容器。 ① 集合只能存放对象。比如你存一个 int 型数据 1 放入集合中#xff0c;其实它是自动转换成 Integer类后存入的#xff0c; Java 中每… 文章目录 1. Java集合概述2. HashSet3. 泛型 1. Java集合概述
Java 集合类存放于 java.util 包中是一个用来存放对象的容器。 ① 集合只能存放对象。比如你存一个 int 型数据 1 放入集合中其实它是自动转换成 Integer类后存入的 Java 中每一种基本类型都有对应的引用类型。 ② 集合存放的是多个对象的引用对象本身还是放在堆内存中。 ③ 集合可以存放不同类型不限数量的数据类型。Java 集合可分为 Set 、 List 和 Map 三种大体系
Set 无序、不可重复的集合List 有序可重复的集合Map 具有映射关系的集合
在 JDK5 之后增加了泛型 Java 集合可以记住容器中对象的数据类型
2. HashSet HashSet 是 Set 接口的典型实现大多数时候使用 Set 集合时都使用这个实现类。我们大多数时候说的 set 集合指的都是HashSet HashSet 按 Hash 算法来存储集合中的元素因此具有很好的存取和查找性能。 HashSet 具有以下特点 1不能保证元素的排列顺序 2不可重复指的是hashcode值不相同 3HashSet 不是线程安全的 4集合元素可以使 null 当向 HashSet 集合中存入一个元素时 HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值然后根据 hashCode 值决定该对象在HashSet 中的存储位置。 如果两个元素的 equals() 方法返回 true 但它们的 hashCode() 返回值不相等 hashSet 将会把它们存储在不同的位置但依然可以添加成功。 举例1
package day10;import java.util.HashSet;
import java.util.Set;public class Test3 {public static void main(String[] args) {Set set new HashSet();set.add(1);//添加元素set.add(a);System.out.println(set);set.remove(1);//移除元素System.out.println(set);System.out.println(set.contains(a));//判断是否包含元素aSystem.out.println(set.contains(1));//判断是否包含元素 1set.clear();//清空集合System.out.println(set);}
}运行结果
举例2 使用 Iterator 接口遍历集合元素 Iterator 接口主要用于遍历 Collection 集合中的元素 Iterator 对象也被称为迭代器 Iterator 接口隐藏了各种 Collection 实现类的底层细节向应用程序提供了遍历 Collection 集合元素的统一编程接口 Iterator 仅用于遍历集合 Iterator 本身并不提供承装对象的能力。如果需要创建 Iterator 对象则必须有一个被迭代的集合。 使用 foreach 循环遍历集合元素 Java 5 提供了 foreach 循环迭代访问 Collection如 for(Person person: persons){ System.out.println(person.getName ()); } package day10;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;public class Test3 {public static void main(String[] args) {Set set new HashSet();set.add(a);set.add(b);set.add(c);set.add(d);System.out.println(set);//使用迭代器遍历集合Iterator it set.iterator();while(it.hasNext()) {System.out.println(it.next());}//for each迭代集合for(Object obj : set) {//把set的每一个值取出来赋值给obj直到循环set的所有值System.out.println(obj);}System.out.println(set.size());//获取集合元素的个数}
}运行结果 证明 1不能保证元素的排列顺序 2不可重复 4集合元素可以使 null
package day10;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;public class Test3 {public static void main(String[] args) {Set set new HashSet();set.add(a);set.add(b);set.add(c);set.add(d);set.add(d);//再添加一个d//集合存的值是不重复的set.add(null);//集合元素可以存nullSystem.out.println(set);//使用迭代器遍历集合Iterator it set.iterator();while(it.hasNext()) {System.out.println(it.next());}//for each迭代集合for(Object obj : set) {//把set的每一个值取出来赋值给obj直到循环set的所有值System.out.println(obj);}System.out.println(set.size());//获取集合元素的个数}
}
运行结果 从运行结果看最后添加的null反而排在了第一个位置说明1不能保证元素的排列顺序(根据hashcode值排序) HashSet 集合判断两个元素相等的标准两个对象通过 equals() 方法比较相等并且两个对象的 hashCode() 方法返回值也相等。 如果两个对象通过 equals() 方法返回 true 这两个对象的hashCode 值也应该相同。 3. 泛型
package day10;import java.util.HashSet;
import java.util.Set;public class Test3 {public static void main(String[] args) {//Set set new HashSet();SetObject set new HashSetObject();//与上面的等价set.add(a);set.add(1);//泛型SetString set1 new HashSetString();//指定String为集合的泛型那么这个集合不能存String类型之外的set1.add(abc);
// set1.add(1);//不可以添加String之外的类型}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925634.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!