set集合的特点:
1.实现了java.util.Set接口2. 默认情况下,集合中元素没有顺序3.不能有重复元素,如果重复元素被添加,则覆盖原来的元素4.元素不能通过下标访问最有代表性的是HashSet
包: java.util.HashSet1.构造函数public HashSet()2.添加一个对象public void add(Object obj)3.判断是否包含某个对象public boolean contains(Object elem)4.判断集合是否为空public boolean isEmpty()5.清空集合public void clear()6.移除某个对象public boolean remove(Object obj)7.返回集合大小public int size()如何获取HashSet内的元素?
一般是通过Iterator接口Iterator的包名: java.util.Iterator1.判断Iterator中是否还有元素:public boolean hasNext()2.得到Iterator中的下一个元素public Object next()测试代码:
import java.util.HashSet;import java.util.Iterator;public class SetTest1{ public static void main(String[] args) { HashSet<String> al = new HashSet<String>(); //添加元素 al.add("中国"); al.add("a"); al.add("b"); al.add("c"); al.add("d"); //遍历元素 Iterator it = al.iterator(); while(it.hasNext()) { String str = (String)it.next(); System.out.println("str = "+str); } //删除元素 al.remove("中国"); Iterator it0 = al.iterator(); while(it0.hasNext()) { String str0 = (String)it0.next(); System.out.println("str0 = "+str0); } }}//如何保证打印出来的顺序和添加的时候顺序一致呢?使用LinkedHashSet即可测试代码如下:import java.util.LinkedHashSet;import java.util.Iterator;public class SetTest1{ public static void main(String[] args) { LinkedHashSet<String> al = new LinkedHashSet<String>(); //添加元素 al.add("中国"); al.add("a"); al.add("b"); al.add("c"); al.add("d"); //遍历元素 Iterator it = al.iterator(); while(it.hasNext()) { String str = (String)it.next(); System.out.println("str = "+str); } //删除元素 al.remove("中国"); Iterator it0 = al.iterator(); while(it0.hasNext()) { String str0 = (String)it0.next(); System.out.println("str0 = "+str0); } }}//能否对Set中的元素排序?使用TreeSet即可测试代码如下:import java.util.TreeSet;import java.util.Iterator;public class SetTest1{ public static void main(String[] args) { TreeSet<String> al = new TreeSet<String>(); //添加元素 al.add("中国"); al.add("a"); al.add("e"); al.add("c"); al.add("d"); //遍历元素 Iterator it = al.iterator(); while(it.hasNext()) { String str = (String)it.next(); System.out.println("str = "+str); } //删除元素 al.remove("中国"); Iterator it0 = al.iterator(); while(it0.hasNext()) { String str0 = (String)it0.next(); System.out.println("str0 = "+str0); } }}//如何对set中的元素进行降序排列?
使用TreeSet()构造函数,是升序排列。降序排列使用构造函数 public TreeSet(Comparator c)参数c为java.util.Collections的reverseOrder()即可测试代码如下:import java.util.TreeSet;import java.util.Iterator;import java.util.Collections;public class SetTest1{ public static void main(String[] args) { TreeSet<String> al = new TreeSet<String>(Collections.reverseOrder()); //添加元素 al.add("中国"); al.add("a"); al.add("e"); al.add("c"); al.add("d"); //遍历元素 Iterator it = al.iterator(); while(it.hasNext()) { String str = (String)it.next(); System.out.println("str = "+str); } //删除元素 al.remove("中国"); Iterator it0 = al.iterator(); while(it0.hasNext()) { String str0 = (String)it0.next(); System.out.println("str0 = "+str0); } }}//遍历可以使用for循环为
for(Object o:集合名称){ String str = (String)o; System.out.println(str);}测试代码如下:import java.util.TreeSet;import java.util.Iterator;import java.util.Collections;public class SetTest1{ public static void main(String[] args) { TreeSet<String> al = new TreeSet<String>(Collections.reverseOrder()); //添加元素 al.add("中国"); al.add("a"); al.add("e"); al.add("c"); al.add("d"); //遍历元素 Iterator it = al.iterator(); while(it.hasNext()) { String str = (String)it.next(); System.out.println("str = "+str); } //删除元素 al.remove("中国"); for(Object obj:al) { String str = (String)obj; System.out.println("obj str ="+str); } }}