1. package com.net.xinfang.reflect;
  2.  
  3. import java.util.Comparator;
  4. import java.util.HashSet;
  5. import java.util.Iterator;
  6. import java.util.Set;
  7. import java.util.TreeSet;
  8.  
  9. /***
  10. * Set集(HashSet)
  11. *
  12. * @author xinfang
  13. *
  14. */
  15. public class set008 {
  16. public void set() {
  17. Set<String> set = new HashSet<String>();
  18. set.add("1");// 添加元素
  19. set.add("2");
  20. set.remove("1");//移除元素
  21. set.contains("2");//判断是否包含元素
  22. set.equals("2");//判断是否有与2相等的元素
  23. set.size();//获取set的尺寸
  24. set.isEmpty();//判断是否为空,为空-false
  25. set.hashCode();
  26. set.toArray();//转换为数组
  27. // Iterator迭代遍历
  28. Iterator it = set.iterator();
  29. while (it.hasNext()) {
  30. System.out.println(it.next());
  31. }
  32. // for增强遍历
  33. for (String st : set) {
  34. System.out.println(st);
  35. }
  36. // TreeSet默认排序
  37. Set<String> se = new TreeSet<String>();
  38. se.add("f");
  39. se.add("a");
  40. se.add("b");
  41. se.add("c");
  42. se.add("d");
  43. se.add("e");
  44. System.out.println(se);
  45. }
  46.  
  47. // 倒序输出
  48. public void dxSort() {
  49. Set<String> set = new TreeSet<String>(new MyComparator());
  50. set.add("a");
  51. set.add("b");
  52. set.add("c");
  53. set.add("d");
  54. set.add("e");
  55. set.add("A");
  56. for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {
  57. System.out.print(iterator.next() + " ");
  58. }
  59. }
  60.  
  61. // 定义新实例
  62. public void newSet() {
  63. Set<Person> set = new TreeSet<Person>(new PersonComparator());
  64. Person p1 = new Person(10);
  65. Person p2 = new Person(20);
  66. Person p3 = new Person(30);
  67. Person p4 = new Person(40);
  68. set.add(p1);
  69. set.add(p2);
  70. set.add(p3);
  71. set.add(p4);
  72. for (Iterator<Person> iterator = set.iterator(); iterator.hasNext();) {
  73. System.out.print(iterator.next().score + " ");
  74. }
  75. }
  76. public static void main(String args[]) {
  77. set008 set8 = new set008();
  78. set8.set();
  79. set8.dxSort();
  80. set8.newSet();
  81. }
  82. }
  83.  
  84. class MyComparator implements Comparator<String> {
  85. @Override
  86. public int compare(String o1, String o2) {
  87. return o2.compareTo(o1);// 降序排列
  88. }
  89. }
  90.  
  91. class Person {
  92. int score;
  93.  
  94. public Person(int score) {
  95. this.score = score;
  96. }
  97.  
  98. public String toString() {
  99. return String.valueOf(this.score);
  100. }
  101. }
  102.  
  103. class PersonComparator implements Comparator<Person> {
  104. @Override
  105. public int compare(Person o1, Person o2) {
  106. return o1.score - o2.score;//升序排列
  107. }
  108. }

JAVA-集合类型Set常用操作例子(基础必备)的更多相关文章

  1. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  2. JAVA集合类型(二)

    JAVA集合类型 (现代的变量集群) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0J ...

  3. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  4. Java 集合框架(常用数据结构)

    早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些 ...

  5. java集合类型源码解析之ArrayList

    前言 作为一个老码农,不仅要谈架构.谈并发,也不能忘记最基础的语言和数据结构,因此特开辟这个系列的文章,争取每个月写1~2篇关于java基础知识的文章,以温故而知新. 如无特别之处,这个系列文章所使用 ...

  6. JAVA集合类型详解

    一.前言 作为java面试的常客[集合类型]是永恒的话题:在开发中,主要了解具体的使用,没有太多的去关注具体的理论说明,掌握那几种常用的集合类型貌似也就够使用了:导致这一些集合类型的理论有可能经常的忘 ...

  7. java集合类型接口和实现类个人总结

    转载:http://blog.csdn.net/qingchunbusanchang/article/details/39576749 java的集合是一个比较综合的概念,相关的知识有很多的博客里面做 ...

  8. Python元组类型、字典类型及常用操作

    一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...

  9. Python列表类型及常用操作

    Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...

随机推荐

  1. Hitchhiker 是一款开源的 Restful Api 测试工具

    Hitchhiker 是一款开源的 Restful Api 测试工具 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到 Hitchhiker 是一款开源的 Restf ...

  2. let申明与const申明

    ES6新增了let命令,用来声明变时量. 它的用法类似于var 但是所声明的变量,只在let命令所在的代码块内有效. // for(let i = 0; i<10 ;i++ ){ console ...

  3. apply方法和call方法。函数属性与方法。

    每个函数都有length属性哥prototype属性. length属性表示的是函数接入参数的个数 在es引用类型语言中,prototype是保存它们所有实例方法的真正所在.换句话来说,类似于toSt ...

  4. centos安装图形化界面

    用下面命令查看查看是哪个模式 systemctl get-default 开机启动图形界面 systemctl set-default graphical.target(图形界面模式) reboot( ...

  5. 软件工程_5th weeks

    从周五开始经历了清明小长假,周六.周日和周一都处于假期状态,因此对于上篇博客的评论回复的很迟,而这周的工作做的也不多. 1.爆打小组 4.5日站立会议 时间:2016.4.5 15:00-15:34 ...

  6. 自定义Label控件

    最近开发过程中有一个需求就是修改label控件的模板,使其能够在鼠标移近的时候变成TextBox,从而方便输入,然后进行相应的修改,最终达到动态修改Label的目的,这里贴出相应的代码,并做简要的分析 ...

  7. python之json数据存储

    # 数据存储:json.dump()和json.load() # date:2017-07-17 import json file_name = 'D:/json_file.txt' nums = [ ...

  8. appium框架感悟

    个人觉得 所谓框架 最终结果就是对存放的元素进行处理 从底层获取数据 往上层传输数据过程中 对其一步一步的封装 由繁到简 再由繁至简

  9. 关于js特效轮播图练习

    [出现问题] js轮播图,图片未正常轮播. [解决方法] 通过对代码的检查,发现是以下三个原因造成的错误. 1.js代码问题 js代码使用alert(test);,测试修改完毕后,发现依然没有解决错误 ...

  10. 任意目录下启动tomcat

    DOS中启动tomcat 1.将tomcat的bin目录添加到Path变量中 2.添加catalina_home变量 3.命令行输入catalina run ojbk