测试Set的打印输出

Java集合之Set Set集合及其实现类简介 阅读详情

/*
*此测试程序的目的是检测Set的toString()方法是否是由叠代器来遍历集合的
*顺便检测低层存储顺序(Set提供的toString()方法应该是反映的底层结构)
*/

//PrintSet.java

package com.msn.spaces.bryantd001;
import java.util.*;

class MyHashSet extends HashSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

class  MyTreeSet extends TreeSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

class MyLinkedHashSet extends LinkedHashSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

public class PrintSet{
      static void fill(Set set){
            for (int i = 0; i < 5; i++){
                  set.add(new Integer(i));
            }
      }
     

      public static void main(String[] args){
            HashSet hs = new HashSet();
            TreeSet ts = new TreeSet();
            LinkedHashSet lhs = new LinkedHashSet();
            fill(hs);
            fill(ts);
            fill(lhs);

            System.out.println("Show the order of the Sets by the default toStrintg() way.");
            System.out.println(hs);
            System.out.println(ts);
            System.out.println(lhs);
            System.out.println();

           MyHashSet mhs = new MyHashSet();
           MyTreeSet mts = new MyTreeSet();
           MyLinkedHashSet mlhs = new MyLinkedHashSet();
           fill(mhs);
           fill(mts);
           fill(mlhs);
           System.out.println("Show the order of the Customized Sets by my toString() way.");
           System.out.println(mhs);
           System.out.println(mts);
           System.out.println(mlhs);  
     }
}

Set集合 目录一、Set集合的特点二、HashSet去重底层原理三、TreeSet自然排序和比较器排序 3.1 自然排序 3.2 比较器排序我们首先定义一个Set集合并为其存值:打印集合内数据的数量:然后我们用两种方式分别循环遍历打印:执行结果:结论:我们可以发现,Set集合不会重复:基本数据类型&String先创建一个对象Ren: 接下来定义一个Set集合并存好值:打印集合内数据数量并循环遍历: 执行结果:可以看到这样并没有去重;解决方法: 在对象类里面重写hascode以及equa 阅读详情

相关推荐

Set遍历打印的常用方式

Set遍历打印的常用方式 set是无序的,所以Set是没有get() 方法, 因此不能使用常规的for循环遍历,故有以下三种思路: 这里有一个集合 Set s = new HashSet<>(); Set<String> s = new HashSet<>(); s.add("zhangsan"); s.add("lisi"); s.add("wangwu"); 1、利用Collection接口提供 的API,先将集合转换为数组,在遍历 举个例子: Object

a_hasaigei的博客 3065

C++STL常用操作之set

C++STL常用操作之set篇 简介: #include<set> 1.元素唯一 2.排序 set也是c++中经常用到的容器,set是集合。set是集合,那么当然它内部的元素就是唯一的(集合的不重复性)。并且set中的元素还是已经排好序的,set和map一样,都是以红黑树为基础的数据结构。 1.构造 set<int> s; s.insert(3); s.insert(2); s.insert(4); s.insert(1); s.insert(1); s.insert(1); f

Alan_Lowe 8540

Python之集合(set)、关系测试函数、列表去重及练习(华为机测题)

文章目录一、集合的定义1、集合内的元素不可重复(自动去重)2、定义一个空集合3、列表的快速去重二、集合的常用方法1、添加顺序和存储数据的顺序不同2、添加单个元素3、同时添加多个元素4、删除5、关系测试函数5.1 交集5.2 并集5.3 差集5.4 对等差分5.5 判断是否为子集(输出为布尔值)5.6判断是否不相交(输出为布尔值)5.7 判断是否为超集(输出为布尔值)三、集合的常用方法1、成员操作符...

weixin_43936969的博客 883

C++ 零碎知识 基础知识 Set相关

/ 定义一个结构体 告诉编译器如何比较Point之间的大小关系// 它可以放在任意位置, 只要构造set时能看到它即可else {

m0_58709899的博客 1000

set( )函数

需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。如果我们不想在删除失败时令解释器提示 KeyError 错误,还可以使用 discard() 方法,此方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,此方法不会抛出任何错误。,返回一个新的集合,包括同时在集合 x 和y中的共同元素。序列、集合或迭代器对象。

qq_39302144的博客 5599

Java Set集合的使用

Java Set集合的使用

分享我的点点滴滴,在成长路上与你同行! 384

Java-Set测试-学生选课

package collection;import java.util.*;public class SetTest { public List<Course> coursesToSelect; private Scanner console; Student student; public SetTest() { coursesToSelect =

thousfeet的博客 1016

Java集合之Set应用举例

一、Set相比于List就是无序且元素不可以重复所以因为无序性: (1)Set不像List那样具有set()方法来修改指定元素 (2)Set遍历时不像List那样可以用get()方法。Set遍历时候只可以用ForEach和Interator迭代器的方法。 二、Set应用举例 以下的例子(1)首先创建了一个Student类,这个类里面定义了一个名字为courses的泛型Set集合,用来保存学生选到的...

求职之路 788

C++ STL set容器详解

C++ set容器set/multiset容器的概念1.set的构造和赋值2.set的大小和交换3.set的插入和删除4.set的查找和统计5.set和multiset的区别6.pair对组的创建7.set容器的排序规则 set/multiset容器的概念 特点:所有元素都会在插入时自动被排序 本质:set/multiset属于关联式容器,底层结构是用二叉树实现的 set和multiset的区别: set不允许容器中有重复的元素 multiset允许容器中有重复的元素 注意:使用set或multis

qq_52324409的博客 4409

python中set函数是什么数据类型_第八讲:Python 数据类型之Set

点击上方蓝字关注我们 1什么是Set?在Python中,Set 是一个无序的不重复元素序列。我们可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。字典的学习我们将在下一讲详细介绍。如何创建Set?set1={“hello”, “good”, “better”, “best”} #用{}来创建Sets...

weixin_30286727的博客 1831

@data 重写set方法_Java中Set集合存储不重复元素的原理

Set集合存储不重复元素的原理前提:存储的元素必须重写hashCode方法和equals方法测试类package Advanced.Set; import java.util.HashSet; public class Demo02HashSetSaveString { public static void main(String[] args) { //创建HashSet...

weixin_32101685的博客 465

Set接口理解 常用实现类 常用方法

问题 首先让我们先带着几个问题来进行接下来的学习 1.Set接口和List接口的区别是什么? 2.Set接口有什么特点? 3.Set接口的实现类有哪些? 接下来正式开始分析讲解Set接口 1.Set接口和List接口的区别是什么? List允许存储重复的元素, 而Set接口是不允许存在重复的元素的(元素可以为Null) List存储的数据是有序的(存入和取出一致), Set接口存储的数据是...

G_YDMYKJL的博客 1394

List、Set的几种打印方式

直接输出list对象 ps:此种情况仅限于添加到集合中的对象是java已有类的实例对象。 java已有类,代码如下: List<Object> list = new ArrayList<>(); Date date1 = new Date(); Date date2 = new Date(); String s1 = n...

不想当菜鸟的程序员 1万+

C++抽象编程——STL(5)——set集合的基本输入输出

the Set class还有一个最有用的集合类,就是set(集合)类了,出口的方法如下图,这个类我们用来模拟数学上的集合,也就是说这个类里的元素是无序且其值只出现一次。set类在许多算法应用中是极其有用的。所以我们应该从一些实例中去体验和感受它们是怎么工作以及为什么在程序中如此有用。 先介绍一下set的常见的方法: 在这里我们再也不是用我们熟悉的pop跟push(push_back)函数来

redAnt的博客 2万+

关于set的正序和倒序输出

写这一篇文章。是我在刷题的时候,运用set进行排序,但是想要逆序输出,结果就蒙住了。 所以就花了点时间,在csdn的世界里,遨游探索了一番。 下面就是我探索到的结果。 一、正向排序 1.直接使用数据 #include<bits/stdc++.h> using namespace std; int main(){ set<int>si {5,8,2,7,9}; //对int型数据,也可以是string型数据 for(set<int>

qq_54520994的博客 4675

python中set详解

python中set方法详解以及案例说明超详细

m0_50816276的博客 1万+

集合进阶Set、Map

最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。好了,关于Collection集合,到这里就学习完了。各位同学,前面我们已经把单列集合学习完了,接下来我们要学习的是双列集合。首先我们还是先认识一下什么是双列集合。所谓双列集合,就是说集合中的元素是一对一对的。Map集合中的每一个元素是以key=value的形式存在的,一个key=value就称之为一个键值对,而且在Java中有一个类叫Entry类,Entry的对象用来表示键值对对象。

haoshuaishuai的博客 161

集合分类及打印的方式

在 Java 中,集合(Collections)是一个用于存储和操作数据结构的框架。API是Java 8引入的功能,提供了链式操作集合的方式,特别适合处理复杂的数据流操作。它的好处是可以在遍历时安全地删除集合中的元素,而不引发。方法,通过 Lambda 表达式遍历集合,写法更简洁。提供了一种统一的遍历方式,适用于各个种类型的集合。是早期Java中的探索方式,主要用于旧版本集合(如。最基础的方式,通过索引值遍历集合(适用于。,可以遍历,并支持在遍历中修改集合。来遍历集合,适合在遍历时修改集合。

沐硕 1190
上一篇: 数组的排序
下一篇: ObjectPool
bryantd
博客等级 码龄22年 7粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值