博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集合学习笔记 ---set
阅读量:6005 次
发布时间:2019-06-20

本文共 3554 字,大约阅读时间需要 11 分钟。

hot3.png

set集合的特点:

1.实现了java.util.Set接口
2. 默认情况下,集合中元素没有顺序
3.不能有重复元素,如果重复元素被添加,则覆盖原来的元素
4.元素不能通过下标访问

最有代表性的是HashSet

包: java.util.HashSet
1.构造函数
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.Iterator
1.判断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);
  }
 
 }
}

 

 

 

转载于:https://my.oschina.net/kingfrog/blog/212080

你可能感兴趣的文章
吃知了有什么好处
查看>>
【AS3代码】数组知识
查看>>
【IBM Tivoli Identity Manager 学习文档】13 Service管理
查看>>
Oracle DB 备份和恢复的概念
查看>>
css
查看>>
多媒体开发之---h.264 rtsp网络流测试流
查看>>
Photoshop for Mac(图像处理软件)破解版安装
查看>>
AOP之PostSharp5-LocationInterceptionAspect
查看>>
【转】使用lockbits方法处理图像
查看>>
程序员编程艺术第二十一~二章:发帖水王及扩展,与最短摘要生成(12.07修订)...
查看>>
原创1:dell sc1425老服务器安装vmware虚拟机esxi 5.0-系统配置
查看>>
独孤九剑的九式说明
查看>>
target='_blank' 安全漏洞
查看>>
点击图像获取RGB
查看>>
sql语句快速参考
查看>>
C 练习(三)
查看>>
浏览器的标准模式和怪异模式
查看>>
从来没有天才 靠自己创造未来——Leo鉴书(29)
查看>>
项目代码风格要求
查看>>
Java经典封装JDBC模板(充分体现面向对象思想)(转)
查看>>