首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

deepToString中的此条件何时会计算为true?

deepToString是Java中Arrays类的一个静态方法,用于将多维数组转换为字符串表示。它的语法如下:

public static String deepToString(Object[] a)

在使用deepToString方法时,此条件会计算为true的情况是当多维数组中的元素存在循环引用时。循环引用指的是数组中的某个元素引用了数组本身或者数组中的其他元素,从而形成了一个循环链。

当存在循环引用时,deepToString方法会在遍历数组时无限递归下去,直到栈溢出或达到递归深度限制。为了避免这种情况,deepToString方法会检测循环引用,并将循环引用的元素替换为字符串"[...]"

以下是一个示例:

代码语言:txt
复制
public class Main {
    public static void main(String[] args) {
        Object[] array1 = new Object[1];
        array1[0] = array1;
        
        System.out.println(Arrays.deepToString(array1));
    }
}

输出结果为:

代码语言:txt
复制
[[...]]

在这个示例中,数组array1中的元素是数组本身,形成了循环引用。deepToString方法检测到循环引用,并将循环引用的元素替换为字符串"[...]"。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

挑战程序竞赛系列(19):3.1最小化第k大

版权声明:本文博主原创文章,未经博主允许不得转载。...思路: 题关键不在于求cost最短路径,需要转换一下,假设我们知道符合条件mid值,要让mid尽可能小,这就意味着大于mid边连接到N边数要尽量少,这跟我们二分判断有关系,假设mid...= 0情况下,意味着FJ不需要付任何费用,那么剩余路径必须满足<=K条件,那么FJ当然是尽可能选择抵达农场N最小边数咯,所以问题就转换成了边数求解,而非cost,所以构造边时候,用int...核心在于: 出现奇数次数是唯一,这就意味着其他数出现次数都为偶数,利用这个性质,可以二分。...给定一个可能存在奇数次数,那么每个等差数列项数总和偶数,说明该数还在更大地方,否则在更小地方。

34120

挑战程序竞赛系列(31):4.5剪枝

版权声明:本文博主原创文章,未经博主允许不得转载。...BFS一个好处在于,能够以最短距离搜到终止状态,也是关键。...步骤: 定义状态 考虑状态终止条件 考虑状态切换规则 重写hashCode和equals方法 代码如下: import java.io.File; import java.io.FileInputStream...题有些关键地方,比如同一轮生成解,不能结合使用,只能使用前几层解和当前层解组合,或许可以如此想象,在构造轮次时,只有一条链,这种构造路径难道不是DFS?没错,就是它,但是何时终止呢?...oj) System.out.println(Arrays.deepToString(o)); } } 这就厉害了,类似于BFS,但能够精确控制每层解非法组合。

43440

spring注解@Conditional 按照一定条件进行判断,满足条件给容器中注册bean

toString() { return "Person [name=" + name + ", age=" + age + "]"; } } @Conditional({}) 按照一定条件进行判断...,满足条件给容器中注册bean * 在类上使用表示,满足条件执行这个类,如果不满足则类中所有方法都不会加载 * 在方法上使用表示,满足条件执行这个方法 /** * @Conditional(...{}) 按照一定条件进行判断,满足条件给容器中注册bean * ** 在类上使用表示,满足条件执行这个类,如果不满足则类中所有方法都不会加载 * 如果系统是windows,给容器注册("bill")...System.out.println("创建----------->>>>>>>>>"); return new Person("李四",99); } /** * @Conditional({}) 按照一定条件进行判断...,满足条件给容器中注册bean * ** 在方法上使用表示,满足条件执行这个方法 * 如果系统是windows,给容器注册("bill") * 如果系统是linux,给容器注册("linus

26320

挑战程序竞赛系列(29):3.4熟练掌握动态规划

题思路:对于车票而言,用一张少一张,很明显一个阶段(DAG),所以不会走环路,那么用简单DP就能解决。...oj) System.out.println(Arrays.deepToString(o)); } } POJ 2441: Arrange the Bulls 题经历了三个版本...,很显然那些只会在阶段i+1之后出现状态没有必要遍历,所以我们必须采取遍历大小i所有子集算法。...oj) System.out.println(Arrays.deepToString(o)); } } POJ 3411: Paid Roads 我还纳闷,case110...所以问题就转换成了如何衡量{ab}和{ba} 对于计算机而言,需要可以量化标准,所谓代价,该代价我们可以用字符串拼接增量表示。 具体增量是什么就不重复了,看代码一目了然。

46630

CA1508:避免死条件代码

值 规则 ID CA1508 类别 可维护性 修复是中断修复还是非中断修复 非中断 原因 方法具有在运行时计算结果始终 true 或 false 条件代码。...true 或 false 条件检查。...分析器会对非常量变量执行数据流分析,以确定与非常量值相关冗余条件检查。 在前面的代码,对于到达 i != j 检查所有代码路径,分析器确定 i 和 j 均为 0。...因此,在运行时,检查计算结果将始终 false。 if 语句内代码是死代码,可以删除或重构。 同样,分析器还会跟踪变量是否 null,并报告冗余 null 检查。...备注 分析器会对非常量值执行成本高昂数据流分析。 这可能增加某些代码库总体编译时间。 何时禁止显示警告 如果不在乎代码可维护性,可安全地禁止显示规则冲突。

52400

加倍提升开发效率,继续深挖Lombok使用

@Builder @Builder注解类生成复杂构建器API。...锁定这个或你自己类对象产生其他影响,因为不受你控制其他代码也可以锁定这些对象,这可能导致竞争条件和其他线程错误。...; 它会在代码块结尾处自动执行 in.close()方法,lombok 能确保方法在try…finally…块内执行 如果你要清理对象类型没有 close() 方法,而是其他一些无参数方法,则可以指定方法名称...= null) { in.close(); } } } } @Getter(lazy=true) 你可以让lombok生成一个getter,它将计算一次值,这是第一次调用这个...如果计算该值占用大量CPU,或者该值占用大量内存,则功能非常有用。 要使用功能,请创建一个私有final变量,并使用@Getter(lazy = true)注解进行标注。

73920

挑战程序竞赛系列(27):3.5二分图匹配(2)

*构造成0or1,接着编辑距离1两个num建立连接,因为它们可能构成新*,从而降低操作次数,二分图匹配求最大独立集。...oj) System.out.println(Arrays.deepToString(o)); } } 对于非零整数,x & (-x)值就是将其最低位1独立出来后值...二分匹配一定能覆盖所有沼泽,且一个很重要条件是宽度1任意长木板,所以只需要找做左顶点和上顶点构成木板即可,接着就是问题转换了。...oj) System.out.println(Arrays.deepToString(o)); } } 在构图时,遍历当前board是否”*”,接着把它们定位到最上端和最左端两块木板...所以说假如知道某个地点圣诞老人出现时刻,那么在规定时间内能够抵达另一个地方,那么可以省去一个圣诞老人。最多可以省去多少呢?最大匹配数,这样题就转换成了二分图求解。

36630

【JAVA教程】Lombok使用与总结

Lombok能通过注解方式,在编译时自动属性生成构造器、getter/setter、equals、hashcode、toString方法。...出现神奇就是在源码没有getter和setter方法,但是在编译生成字节码文件中有getter和setter方法。这样就省去了手动重建这些代码麻烦,使代码看起来更简洁些。 2....通过将includeFieldNames参数设为true,就能明确输出toString()属性。这一点是不是有点绕口,通过代码来看更清晰些。...setter方法,自动覆盖Lombok方法。...让代码变得简洁,不用过多去关注相应方法。 属性做修改时,也简化了维护这些属性所生成getter/setter方法等。 缺点:不支持多种参数构造器重载。

26530

第十届蓝桥杯大赛软件类省赛 Java 大学 B组 试题H:人物相关性分析

str.contains("Bob")) { // 两个名字至少都包含一个 System.out.println(0); System.exit(0); } } /** * 方法计算出...name 在句子位置 * @param s 英文句子 * @param name 人物名称 * @return list 保存 人物name 在 英文句子s 位置 */ public...if(prefix < 0) { // 如果name句子第一个单词,则只需判断后缀是否标点或者空格 if(str.substring(suffix,suffix+1).matches...(s,name):计算出 人物name 在 句子s 位置 3、toMap(list1,list2):分别将两个calculate()计算之后值存入TreeMap,key存储name在s位置,...TreeMap默认排序,         value用于区分排序后 key 是哪个人物,之后map存入二维数组,最后遍历二维数组判断可得题解

30820

挑战程序竞赛系列(36):3.3线段树和平方分割

理解:空间换时间,举个例子: 1 2 3 4 5 6 7 8 9 10 求指定区间内最小值 区间 [1, 3]最小值1 区间 [4, 8]最小值4 传统做法,遍历指定区间需要O(n...,因此我们采用线段树来解决,线段树维护独立个体是自底向上慢慢长大,所以空间复杂度更高,但速度更快,代码如下: import java.io.File; import java.io.FileInputStream...此处我们采用分桶法,或者是一种分治手段。我们把每个点映射到二维平面上去(i, A[i]),这样一来,逆序对个数其左上点个数和右下点个数总和。如何表示动态删除?...因为在二维平面上,可以方便表达某个点左上和右下区域,所以删除也是很自然事情,至于点没有了(即不参与计算),可以用(-1,-1)表示。...,以自己方式计算了(0,0)到(x,y)个数,大同小异,注意一些边界即可。

64820

【Java学习笔记之十二】Java8增强工具类:Arrays用法整理总结

这个时候得用 deepToString 方法才能得到正确结果[[80, 81, 82], [84, 85, 86], [87, 88, 89]]  System.out.println(Arrays.deepToString...2和第3个元素赋值8 36 37 Arrays.fill(array, 2, 4, 8); 38 39 System.out.println("将数组第2和第3个元素赋值8:Arrays.fill...(必须是排序好,否则结果不正确) 78 79 Arrays.sort(array1); 80 81 System.out.println("元素3在array1位置:Arrays.binarySearch...2和第3个元素赋值8:Arrays.fill(array, 2, 4, 8): 5 5 8 8 5 对数组第2个到第6个元素进行排序进行排序:Arrays.sort(array,2,7): 7...元素3在array1位置:Arrays.binarySearch(array1, 3): 1 元素9在array1位置:Arrays.binarySearch(array1, 9):

61560

Java并发-从JDK源码角度看什么时候使用CAS机制

但是如果你了解CAS机制的话,你就会知道机制有可能导致线程占据CPU资源,如果在线程安全条件下仍然使用CAS机制,那么就会带来不必要CPU资源损耗。...)) {//使用CAS机制将当前锁状态更新,只有一个线程会成功,返回true setExclusiveOwnerThread(current);//将当前线程置独占线程...原因是上述原则第三点:CAS机制使用处可能出现线程不安全情况,而后者却是一定处于线程安全情况。...,此时线程显然是不安全,所以需要使用CAS机制来进行线程安全性保证,并且多个抢占资源线程只有一个线程抢占到所资源,所以将其放置于if逻辑判断语句中,只有成功线程才会被设置当前锁对象独占线程...; 而后者调用普通set方法原因是:允许重入锁条件是占据锁资源线程恰好当前访问锁对象线程,这样线程有且只有一个,那么进行状态更新时,就相当于我们尚未学习多线程知识前单线程set方法,无须考虑线程不安全性

86430

java数组遍历三种方式

语法格式: for(type element: array) { System.out.println(element); } 注: foreach 语句数组或对象集合每个元素重复一个嵌入语句组...已知打印一维数组APISystem.out.println ( Arrays.toString ();,其参数数组名或数组指针,其支持数据类型有很多,如:int[]、char[]、byte[]等...相当于一个长度3数组,但是这个数组元素还是是数组。 当执行Arrays.toString时候相当于遍历数组,并且输出数组元素,但是这个数组元素是数组,所以这里输出是数组元素地址。...3.2.Arrays.deepToString()与Arrays.toString()区别 Arrays.deepToString()主要用于数组还有数组情况,而Arrays.toString()...2 ***public static boolean equals(long[] a, long[] a2)***如果两个指定 long 型数组彼此相等,则返回 true

1.2K20

Arrays:点燃你数组操作技巧隐秘武器

前言   数组在 Java 是一种常用数据结构,用于存储和操作大量数据。但是在处理数组数据,可能变得复杂和繁琐。Arrays 是我们在处理数组时一把利器。...copyOf() - 复制数组:将指定数组副本复制到一个新数组。 copyOfRange() - 范围复制数组:将指定数组指定范围内元素复制到一个新数组。...fill() - 填充数组:将指定值填充到数组每个元素。 equals() - 比较数组相等性:比较两个数组是否相等。...spliterator() - 分割迭代器:创建一个用于遍历数组元素分割迭代器。 parallelPrefix() - 并行前缀:对数组元素进行累积操作,将结果存储在数组。...deepToString() - 多维数组字符串表示形式:返回多维数组字符串表示形式。 toString() - 数组字符串表示形式:返回数组字符串表示形式。

11920
领券