这个e==this什么时候会成立呢????

public String toString() {
        Iterator<E> it = iterator();
        if (! it.hasNext())
            return "[]";

        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for (;;) {
            E e = it.next();
            sb.append(e == this ? "(this Collection)" : e);
            if (! it.hasNext())
                return sb.append(']').toString();
            sb.append(',').append(' ');
        }
    }

0

2个回答

如果自己也在那个 iterator里面,那么this就会等于e

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test20190327 {

    public static void main(String[] args) {
        Whatever whatever1 = new Whatever();
        Whatever whatever2 = new Whatever();
        Whatever whatever3 = new Whatever();
        Whatever whatever4 = new Whatever();

        whatever3.addToList(whatever1);
        whatever3.addToList(whatever2);
        // 把自己加进这个list里面
        whatever3.addToList(whatever3);
        whatever3.addToList(whatever4);

        System.out.println(whatever3.toString());
    }
}

class Whatever<T> {

    private List<T> list = new ArrayList<T>();
    public void addToList(T t) {
        list.add(t);
    }
    public Iterator<T> iterator() {
        return list.iterator();
    }


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        Iterator<T> it = iterator();
        while(it.hasNext()) {
            T t = it.next();
            if (t == this) {
                sb.append("[it's me]");
            } else {
                sb.append("[not me]");
            }
        }
        return sb.toString();
    }
}

结果

[not me][not me][it's me][not me]

0

这个要看iterator迭代器内部怎么实现的了。它什么情况下会让这个对象本身和迭代器下一个元素相等

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
go语言学习笔记(十)——channel
介绍 channel作为goroutine间通信和同步的重要途径,是Go runtime层实现CSP并发模型重要的成员。channel 提供了一种通信机制,通过它,一个 goroutine 可以想另一 goroutine 发送消息。 初始化 在声明并初始化一个通道的时候,我们需要用到Go语言的内建函数make。我们传给make的第一个参数是代表了通道的具体类型的类型字面量。如例 ...
什么时候会发生FullGC
  堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生代即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor G...
instanceof什么时候使用?
举个例子: String s = "I AM an Object!"; boolean isobject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isobject的值为true。 insta
OnDraw这个函数都什么时候会发生呢?为什么呢?
OnDraw这个函数都什么时候会发生呢?为什么呢?rnvoid CEx14aView::OnDraw(CDC* pDC)
Bitmap调用recycle()回收内存
Bitmap调用recycle? When?     Bitmap有一个recycle方法,意思很简单,回收Bitmap的空间。   Q 1: Bitmap是否有调用recycle方法的必要性? A: 嵌入式系统总是格外注重空间的问题,不小心的话就会有OOM。但是应用层使用java的android平台有其天然的优势【java语言有自己的垃圾回收,android平
什么时候执行full gc
JVM是Java Virtual Machine(Java虚拟机)的缩写。 要理解jvm的原理,首先必须理解jvm的堆(heap),栈(stack)以及方法区。 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 栈区
心理学什么时候会崛起呢
在心理搜普论坛上看到这个地震震热心理学的新闻,关于心理学和心理学人的出路,我曾经有过关于心理学就业的论述,觉得心理学应该是个就业面和广泛,但是目前社会和企业都没有合适的位置和认识,所以就中国心理学目前的现状来看,一两年内还是不乐观的。这次的汶川地震是一个天灾人祸,但是同时也成了聚拢中国人的一个胶黏剂,现在全国人民同心协力的帮助灾区脱离困境。这次也体现出中国政府对紧急事件的处理能力,在地震两
shiro系列-认证模块
本章详细说明shiro的认证模块。 1,认证? 在shiro中认证是验证身份的过程。通过提供用户的principals和credentials,shiro完成匹配认证。 principals:是Subject的身份id属性,可以是任何东西只要能唯一标示一个用户就行,例如常见的用户名称。 credentials:用于证明principals,例如用户的密码 2,认证Subject的过程(用
C++什么时候会淘汰呢
听说C++将来会淘汰 请说出理由和分析
新证明!即使在极端条件下,爱因斯坦的广义相对论仍然成立
在比萨斜塔上扔下一颗弹珠和一颗炮弹,会同时击中地面。这一事实可以用阿尔伯特·爱因斯坦的引力理论来解释——广义相对论——它预测所有的物体都以同样的方式下落,无论它们的质量或成分如何。即使是地球和月球,在它们互相环绕的过程中,也会以同样的方式朝着太阳“坠落”。爱因斯坦的理论在实验室和太阳系的其他地方都通过了所有测试。但是科学家们知道量子力学的行为是不同的,所以...
系分试题(数据库)
数据库:如果函数依赖集合F满足: (1)F中每一个函数依赖的右部都是单属性; (2)F中的任一函数依赖X→A,其F-{X→A}与F不等价的; (3)F中的任一函数依赖X→A,Z为X的子集。(F-{X→A})∪{Z→A}与F不等价。 则称F为最小函数依赖集合。 1、设有关系模型R(A,B,C,D,E),F是R上成立的函数依赖集,F={ABC→DE,BC→D,D→E}, 试问R达到第几范式,并说明
什么时候这个变量会变?
代码来自Java核心技术卷一的p398;rn就看加了注释那里就好;rn我的问题是,showDialog方法里ok一开始设为false,然后在方法里ok的值一直没变,那什么时候这个方法会return true呢?rn估计问题很简单,可咱理解不了,呵rn谢谢先rnrn[code=Java]rnimport javax.swing.*;rnimport java.awt.event.*;rnimport java.awt.*;rnimport java.awt.geom.*;rnimport java.util.*;rnrnpublic class FirstExamplernrn public static void main(String[] args)rn rn EventQueue.invokeLater(new Runnable()rn rn public void run()rn rn ExFrame frame = new ExFrame();rn frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn frame.setVisible(true);rn rn );rn rnrnrnclass ExFrame extends JFramernrn public ExFrame()rn rn setTitle("lala");rn setSize(500, 500);rn rn JMenuBar mbar = new JMenuBar();rn setJMenuBar(mbar);rn JMenu fileMenu = new JMenu("File");rn mbar.add(fileMenu);rn rn JMenuItem connectItem = new JMenuItem("Connect");rn connectItem.addActionListener(new ConnectAction());rn fileMenu.add(connectItem);rn rn JMenuItem exitItem = new JMenuItem("Exit");rn exitItem.addActionListener(new ActionListener()rn rn public void actionPerformed(ActionEvent event)rn rn System.exit(0);rn rn );rn fileMenu.add(exitItem);rn rn textArea = new JTextArea();rn add(new JScrollPane(textArea), BorderLayout.CENTER);rn rn rn private PasswordChooser dialog = null;rn private JTextArea textArea;rn rn private class ConnectAction implements ActionListenerrn rn public void actionPerformed(ActionEvent event)rn rn if (dialog == null) dialog = new PasswordChooser();rn rn dialog.setUser(new User("yourname", null));rn rn //什么时候返回true?rn if (dialog.showDialog(ExFrame.this, "Connect"))rn rn User u = dialog.getUser();rn textArea.append("user name = " + u.getName() + ", password = " + (new String(u.getPassword())) + "\n");rn rn rn rnrnrnclass PasswordChooser extends JPanelrnrn public PasswordChooser()rn rn setLayout(new BorderLayout());rn rn JPanel panel = new JPanel();rn panel.setLayout(new GridLayout(2, 2));rn panel.add(new JLabel("User name:"));rn panel.add(username = new JTextField(""));rn panel.add(new JLabel("Password:"));rn panel.add(password = new JPasswordField(""));rn add(panel, BorderLayout.CENTER);rn rn okButton = new JButton("Ok");rn okButton.addActionListener(new ActionListener()rn rn public void actionPerformed(ActionEvent event)rn rn ok = true;rn dialog.setVisible(false);rn rn );rn rn JButton cancelButton = new JButton("Cancel");rn cancelButton.addActionListener(new ActionListener()rn rn public void actionPerformed(ActionEvent event)rn rn dialog.setVisible(false);rn rn );rn rn JPanel buttonPanel = new JPanel();rn buttonPanel.add(okButton);rn buttonPanel.add(cancelButton);rn add(buttonPanel, BorderLayout.SOUTH);rn rn rn public void setUser(User u)rn rn username.setText(u.getName());rn rn rn public User getUser()rn rn return new User(username.getText(), password.getPassword());rn rn rn public boolean showDialog(Component parent, String title)rn rn ok = false;rn rn Frame owner = null;rn if (parent instanceof Frame) owner = (Frame) parent;rn else owner = (Frame) SwingUtilities.getAncestorOfClass(Frame.class, parent);rn rn if (dialog == null || dialog.getOwner() != owner)rn rn dialog = new JDialog(owner, true);rn dialog.add(this);rn dialog.getRootPane().setDefaultButton(okButton);rn dialog.pack();rn rn rn dialog.setTitle(title);rn dialog.setVisible(true);rn return ok; //ok的值在方法里一直没变,怎么会返回true呢?rn rn rn private JTextField username;rn private JPasswordField password;rn private JButton okButton;rn private boolean ok;rn private JDialog dialog;rnrnrnclass Userrnrn public User(String aName, char[] aPassword)rn rn name = aName;rn password = aPassword;rn rn rn public String getName()rn rn return name;rn rn rn public char[] getPassword()rn rn return password;rn rn rn public void setName(String aName)rn rn name = aName;rn rn rn public void setPassword(char[] aPassword)rn rn password = aPassword;rn rn rn private String name;rn private char[] password;rnrn[/code]
什么时候source > tmp成立?
int instr(char *source, char *pattern)rnrn char *tmp=NULL;rnrn tmp = strstr(source, pattern);rnrn if(tmp == NULL)rn return(0);rn elsern return((source > tmp) ? (source - tmp + 1) : (tmp - source + 1));rnrnrn什么时候source > tmp成立?
WM_CTLCOLOR在什么什么时候产生
WM_CTLCOLOR消息         在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色、背景色以及字体。该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘制之前擦除其客户区。         WM_CTLCOLOR映射消息处理函数为afx_msg HBRUSH OnCtlColor(CDC
腾讯什么时候成立的
今天刚申请了一个号,没有过多长时间10000就给来个信息说是腾讯10周年,我被抽中二等奖,电话是076-085-906-997和076-085-906-995 也不知道是真是假,同时还让填身份证号和银行卡号。他来信息是和腾讯给发消息时是一样的?
dl,dt,dd在什么时候适合使用呢
dl,dt,dd在什么时候适合使用呢?dt里是放置信息标题的,dd则是这个信息的简单概要的描述
Java高级系列——何时使用、如何使用异常(Exceptions)
一、介绍 在Java中,异常是一个非常重要的工具,在程序流中异常可以发出一些反常的(异常的)情况并阻止程序进行更深入的执行。自然地,异常情况可能是致命的(程序不能执行任何操作并且会终止),也可能是可恢复的(程序可以继续执行,但是有些功能可能不可用)。 本文我们将会阐述一些使用异常的经典场景,讨论Checked Exceptions和Unchecked Exceptions,并且接触一些不太常见
琴生Jensen不等式,条件期望
1. Jensen 不等式Jensen 不等式的意义是:函数的期望大于等于期望的函数,即 E(f(x))≥f(E(x))E(f(x))\geq f(E(x))或者写成凸函数条件表达式的形式,在这个表达式式中,tt 相当于 x1x_1 的概率, (1−t)(1-t) 相当于 x2x_2 的概率: tf(x1)+(1−t)f(x2)≥f(tx1+(1−t)x2)t∈{0,1}tf(x_1)+(1-t
C# GET SET用法
GET SET 该如何使用呢?什么时候使用呢?该文档详细说明了。
高等数学第五版PPT上册
接着传,第三章的,什么时候能把上传容量扩一下呢??
从头认识java-13.7 什么时候使用泛型?
这一章节我们来讨论一下什么时候使用泛型?答案:当你希望代码能够跨多个类型(不同的类型,不包含继承关系)工作的时候。1.当没有确切类型的时候下面是错误的代码:package com.ray.ch13; public class Test { private T obj; public Test(T t) { obj = t; } public void test() { //
在什么条件下,也就是什么时候会用java匿名内部类
何时才能使用匿名内部类呢?满足下列条件: ·只用到类的一个实例 。 ·类在定义后马上用到。 ·类非常小(SUN推荐是在4行代码以下) ·给类命名并不会导致你的代码更容易被理解。 在使用匿名内部类时,要记住以下几个原则: ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、静态方法。 ·匿名内部类不能是public,protected,
js闭包是怎么产生的
我们先谈谈闭包是怎么产生的? 官方是这样解释什么是闭包的: 闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 看到这句话就知道闭包与环境有关,与环境有关就离不开作用域。 然而js 作用域中特殊的就是词法作用域 这个词法作用域又称之为静态作用域或者闭包。 词法作用域和闭包或许字面意思难以解释,我们解释静态作用域,静态 作用域,静态的吧。静态作用域就是函数声明时,就已经订好的作用域,以后也不会改变的作用域就是静态作用域。那么为什么 函数声明时就已经
System.err.println()是什么?什么时候要用到它
System.err.println()
什么时候触发MinorGC?什么时候触发FullGC?
触发MinorGC(Young GC)     虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间     1、如果大于的话,直接执行minorGC     2、如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC     3、如果开启了HanlerPromotionFailure, JVM会判断老年代的最大...
为什么会出现跨域问题?
2 参考文章 这里写链接内容
linux下的C语言开发(进程创建及等待)
在Linux下面,创建进程是一件十分有意思的事情。我们都知道,进程是操作系统下面享有资源的基本单位。那么,在Linux下面应该怎么创建进程呢?其实非常简单,一个fork函数就可以搞定了。但是,我们需要清楚的是子进程与父进程之间除了代码是共享的之外,堆栈数据和全局数据均是独立的。 [cpp] view plaincopy #include   
Java中什么时候会发生内存泄漏?
我们都知道,Java与C++一个很大的区别就是Java有垃圾回收机制,C++的中的对象必须得手动处理,这样才不至于发生内存泄漏这样的悲剧。C++中如果不及时处理无用的对象,会发生内存泄漏,那Java中会不会发生内存泄漏呢,答案是肯定的。我们都知道Java中对未被引用的对象进行垃圾回收,如果还有引用的话,那就让它多活一会儿。但是假设我们考虑这样一种情况,在内存中有这么两个对象,它们一个生存周期远大于另
关于js中if语句成立成立条件的总结
在javascript中,数据类型共有number,string,boolean,null,undefined,Object六种,但实际使用过程中,我们总习惯用var对变量进行定义,而实际去不知道他的类型。可以用js中typeof()方法确定其类型。当我们遇见string类型的“”或者”在if语句中返回的为false,简单地说,只要里面有东西,返回为true。在实际开发过程中,前台在判断后台传递过来
医院建立客户服务中心的必然性
随着我国加入WTO以及市场经济的逐步推进和深化,固守多年的医疗市场同样面临着前所未有的机遇、挑战、竞争和压力,医院步入市场经济的时代已经来临。国外医疗服务机构的准入,必将有大量的境外资金和人才、设备涌入我国的医疗市场,独资、股份制、私人医院以及医疗保险机构也将如雨后春笋般的在国内遍地开花,拥有前沿的个性化、人性化服务的医院将占有更大的市场份额。   1 在医院成立客户服务中心的必然性  
什么是类的加载,何时加载
当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载,连接,初始化三个步骤来对该类进行初始化,JVM将会连续完成这三个步骤,也把这三个步骤统称为类加载或类初始化。 类加载指的是将类Class文件读入内存,并为之创建一个java.lang.Class对象,也就是说程序使用任何类时,系统都会为之建立一个java.lang.Class对象 类是某一类对象的抽象,类是概念层次的东西,但类也是
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
这个关于try{},finally {}和return的问题,网上答案纷繁。然而,错误的答案一样遍地都是。 今天在http://bbs.csdn.net/topics/60474475看到了很好的答案和实例,特摘录于此,以飨诸君。 -------------------------------分割线----以下是转载正文---------------------------------
什么时候触发GC
首先需要知道,GC又分为 minor GC 和 Full GC (也称为 Major GC )。Java 堆内存分为新生代和老年代,新生代中又分为1个 Eden 区域 和两个 Survivor 区域。那么对于 Minor GC 的触发条件:大多数情况下,直接在 Eden 区中进行分配。如果 Eden区域没有足够的空间,那么就会发起一次 Minor GC;对于 Full GC
线程阻塞(二),Semaphore介绍
上一篇介绍了CountDownLatch和CyclicBarrier的使用,本篇介绍下另外一个阻塞工具Semaphore,有点类似CountDownLatch和CyclicBarrier,它也能实现线程阻塞,也能计数,但是更像是一种线程调度,具体看一下使用方法吧。 构造方法 public Semaphore(int permits) {//perm...
什么时候需要用hash_map,什么时候需要用map?
大家都知道在C++的STL中map是使用树来做查找算法,而hash_map使用hash表来排列配对,是使用关键字来计算表位置。那使用起来他们的差别主要是什么呢?对于性能差别是什么,适合什么情况下应用呢?于是我对它们进行了一些测试,并记录了测试数据供大家分享。     测试的内容主要是map和hash_map的添加、删除、查找和遍历操作,首先进行了几组测试,分别是10万次、30万次,时间单位均为毫
JavaScript if(变量) 到底什么时候成立
JavaScript实在是神通广大,虽然写了很多年,一些简单的代码有时写着写着还是忍不住会怀疑。 比如if(variable) 这样的语句到底什么时候成立,具体是怎么判断的? 今天忍不住再来测试一下。 结论 返回false的变量值: false 0 空字符串 undefined null NaN 返回true的变量值: true 1 非空字符串 对象 数组 非空字符串包括空格(' '),'...
新一届全国“教指委”成立大会召开,会议详情
大家知道,二十多年后,今年这批新入学的00后大学生将成为国家建设的栋梁之才。成立全国性的“教指委”,“管”住他们,学习电子版微积分(必修基础课),适应国际发展潮流,是很有必要的,值得我们关注。 根据教育部官网,新一届全国“教指委”成立大会召开,陈宝生部长发表重要讲话。会议详情,请见本文附件。 袁萌  陈启清 11月3日 附:2018—2022年教育部高等学校教学指导委员会成立会议召开 201...
为什么toString()方法会自动被调用
转载自:http://blog.csdn.net/anddyhua/article/details/42675099    为什么toString 方法会自动被调用先执行下面一段代码:package reusing; //: reusing/Bath.java // Constructor initialization with composition. import static net.mi...
什么时候用 _com_error *e 什么时候用 _com_error e
ADO操作 数据库 导常扑抓 什么时候用 _com_error *e 什么时候用 _com_error e rnrnrn如 tryrnrn..........//ADO操作数据库rnrncatch(_com_error *e)rnrn//什么情况是这个导常 rn...........rnrncatch(_com_error &e)rnrn//什么情况是这个导常 rn...........rnrncatch(_com_error e)rnrn//这个和 _com_error &e 是一个类型的rn................rnrncatch(...)rnrn.............rnrn
九个数字填入空格中,使等式成立
用1、2、3、4、5、6、7、8、9这9个数字,填入□ 中使等式□□×□□□ = □□□□ 成立,每个数字恰好只用一次。 以下是所有的7 个答案供参考: 12 ´ 483 =5796、18 ´ 297 = 5346、27 ´ 198 =5346、 28 ´ 157 =4396、39 ´ 186 = 7254、42 ´ 138 =5796、 48 ´ 159 =7632; #in
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据培训呢 区块链培训班呢

相似问题

3
这个e==this什么时候会成立呢????
0
Qt调用MATLAB程序就会发生错误自动退出界面,会去找pdb文件,要怎么解决,求各位大神解答,拜托拜托!!!
2
嵌入式多线程开发,多线程共享数据什么时候需要使用volatile?
1
delphi ListView控件用vsList样式,显示文字不全,怎么解决呢?
0
请问这个代码哪里错了?有人会opap的吗?
0
VB 中,怎么画出这个机构,以及运动轨迹是如何做到实现静态轨迹的同时进行右移的?
0
基于创龙TMS320C6655开发板的测试过程中,怎么使用EMIF信号电平,才不会出错呢?
0
c#ef框架里Bll层的查询方法为什么要定义成泛型类呢,有什么好处
0
matlab如何判断连通域膨胀后是否会和其他连通域粘连
0
请问labview这个三维显示怎么运行起来卡卡的?
3
关于生成器的这段代码为何输出的是这个值
0
关于matlab行波阈值去噪,为什么结果出来后并没有变化呢
1
请问有谁搭建多线程时遇到过 AttributeError: 'list' object has no attribute 'Thread'这个错误吗?
3
新人求助,python的insert怎么用啊?我这个输入好多次都失败的?
0
vmware安装fedora是显示这个页面就一直不动了 ,是什么原因? 附图。
2
VS2017 MFC 为什么我这个项目会抛出找不到FindFile.cpp的异常,而新建的工程可以?
5
spring boot中一直刷新一个请求得到的sessionid会变化
1
quartus ii 15.0和modelsim 建立联合仿真时报下图中错误,请问怎么解决呢?
0
请教这个算法题目怎么解?
0
word vba的查找通配符该如何写呢?