- 浏览: 692598 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (181)
- Matlab (16)
- Java (26)
- autoHotkey (4)
- openCV (1)
- C++ (50)
- PDF-XChange Viewer (2)
- 学术 (11)
- javascript (4)
- linux (11)
- SWT (9)
- latex (7)
- GAE (2)
- windows (6)
- C# (3)
- PS (20)
- JNI (4)
- latex,批处理 (0)
- 批处理 (4)
- Android (5)
- 矩阵论 (1)
- SVM (1)
- 概率图模型 (0)
- Python (12)
- Eigen (5)
- 编程题 (1)
- MKL (1)
- 神经网络 (9)
- 最优化 (2)
- 摄影 (1)
- PPT (0)
- After Effects (3)
- CUDA (3)
- caffe (0)
- MXNet (2)
- svn (1)
- R (0)
- 虚拟机 (0)
- tensorflow (7)
- theano (1)
- Keras (1)
- vim (1)
- xgboost (1)
- spark (6)
- eclipse (2)
- word2vec (0)
- hadoop (1)
- dmlc (1)
- git (0)
最新评论
-
jeffersonz:
请问大神,这个插件记录下来的脚本为什么不能再Extendscr ...
PhotoShop - 记录PS的所有操作为JavaScript代码 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道cherish ...
Eigen的编译选项;MKL的使用 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道 您好,您的工 ...
Eigen的编译选项;MKL的使用
先贴出输出:
TreeSet Integer
集合为:[-1, 0, 6, 8, 66]
更改temp为:55
集合为:[-1, 0, 6, 8, 66]集合并未因为temp的改变而改变,说明java对基本类型做了特殊处理
-----------------------------
TreeSet 自定义的Int
集合为:[6, 66]
treeSet.contains(6)= true
treeSet.contains(66)= true
更改temp为:-55
集合为:[6, -55]集合因为temp的改变而改变,但排序并未改变
treeSet.contains(6)= false
treeSet.contains(66)= false
treeSet.contains(-55)= true
代码:
TreeSet Integer
集合为:[-1, 0, 6, 8, 66]
更改temp为:55
集合为:[-1, 0, 6, 8, 66]集合并未因为temp的改变而改变,说明java对基本类型做了特殊处理
-----------------------------
TreeSet 自定义的Int
集合为:[6, 66]
treeSet.contains(6)= true
treeSet.contains(66)= true
更改temp为:-55
集合为:[6, -55]集合因为temp的改变而改变,但排序并未改变
treeSet.contains(6)= false
treeSet.contains(66)= false
treeSet.contains(-55)= true
代码:
package Tests; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; public class testSet { public static void main(String[] args) { // testHashSet(); testTreeSet();//数据自动排序 System.out.println("-----------------------------"); testTreeSetInt();// 数据自动排序 // testLinkedList(); } private static void testLinkedList() { LinkedList<Object> list = new LinkedList<Object>(); list.add("asdf"); list.add("2"); list.add(-1); list.add(55); System.out.println(list); Iterator<Object> it = list.iterator(); while (it.hasNext()) { System.out.print(it.next() + " "); } System.out.println(); ListIterator<Object> lit = list.listIterator(1);// 从第2个开始 System.out.print("前向:"); while (lit.hasNext()) {// 前向 System.out.print(lit.next() + " "); // System.out.println("序号:"+lit.nextIndex()); } System.out.println(); System.out.print("后向:"); while (lit.hasPrevious()) {// 后向 System.out.print(lit.previous() + " "); lit.previousIndex(); } System.out.println(); } private static void testTreeSet() { System.out.println("TreeSet Integer"); SortedSet<Integer> treeSet = new TreeSet<Integer>(); Integer temp = 66; treeSet.add(temp); treeSet.add(6); treeSet.add(8); treeSet.add(-1); treeSet.add(0); treeSet.add(6); treeSet.add(6); temp = 55;// 奇怪现象 System.out.println("集合为:"+treeSet); System.out.println("更改temp为:"+temp); System.out.println("集合为:"+treeSet+"集合并未因为temp的改变而改变,说明java对基本类型做了特殊处理"); // System.out.println("treeSet.contains(6)= " + treeSet.contains(6)); // for (int integer : treeSet) { // System.out.println(integer == 0); // } } private static void testTreeSetInt() { System.out.println("TreeSet 自定义的Int"); SortedSet<Int> treeSet = new TreeSet<Int>(); Int temp = new Int(66); treeSet.add(temp); treeSet.add(new Int(6)); // treeSet.add(new Int(-8));//是否注释以下几行6和temp的错误不同 // treeSet.add(new Int(100)); // treeSet.add(new Int(222)); // treeSet.add(new Int(333)); // treeSet.add(new Int(444)); System.out.println("集合为:"+treeSet); System.out.println("treeSet.contains(6)= " + treeSet.contains(new Int(6)));//正确 System.out.println("treeSet.contains(66)= " + treeSet.contains(new Int(66)));//出错 temp.x = -55;// 奇怪现象 System.out.println("更改temp为:"+temp.x); System.out.println("集合为:"+treeSet+"集合因为temp的改变而改变,但排序并未改变"); System.out.println("treeSet.contains(6)= " + treeSet.contains(new Int(6))); System.out.println("treeSet.contains(66)= " + treeSet.contains(new Int(66))); System.out.println("treeSet.contains(-55)= " + treeSet.contains(new Int(-55)));//出错 } static class Int implements Comparable<Int> { int x; public Int(int x) { super(); this.x = x; } @Override public int compareTo(Int o) { return x - o.x; } @Override public String toString() { return ""+x; } } private static void testHashSet() { System.out.print("hashSet"); HashSet<Object> hset = new HashSet<Object>(); hset.add(5); hset.add("asdf"); hset.add(-9.999); hset.add(5); hset.add("asdf"); hset.add(-9.999); System.out.println(hset); } }
评论
1 楼
clue
2010-06-21
temp = 55;
这一句创建了一个新的Integer对象,而不是更改了旧的Integer对象的值。
第一个就直接更改了对象的属性
这时TreeSet不知道属性变了,所以它的次序也乱了
对应的contains算法也有可能出错(因为它认为当前已经排好序了)
这一句创建了一个新的Integer对象,而不是更改了旧的Integer对象的值。
第一个就直接更改了对象的属性
这时TreeSet不知道属性变了,所以它的次序也乱了
对应的contains算法也有可能出错(因为它认为当前已经排好序了)
发表评论
-
lambda表达式
2014-08-20 21:47 1909仅作备忘,要学习还是看给的链接吧 1、C++ 中文介绍:htt ... -
利用Doxygen生成C++、Java文档
2013-04-08 16:15 4475示例程序、配置文件及doxygen常见参数文字版参见本文附件 ... -
删除citeulike导出的bib文件中的中文字符,使之能在WinEdt中读取
2012-12-06 18:57 1816在使用Citeulikehttp://citeulike.or ... -
使用jsoup分析网页
2012-12-05 16:12 2690之前用过HTMLParser,许久不更新的东西了,印象中也没那 ... -
JNI中基本类型数组的传递方法(无需拷贝数据!!!)
2012-10-23 17:11 183780、先来看一下主要用到哪些函数: GetIntArrayEle ... -
swig--在java、C#中调用c++写的DLL(以vs2012配置为例)
2012-10-02 22:06 72421、下载、安装: 到http://www.swig.org/d ... -
GAE学习笔记——静态文件、资源文件;GAE中使用velocity模板
2012-07-13 21:49 1456参考资料:https://developers.google. ... -
Google application engine 的Eclipse配置方法
2012-07-11 19:52 15971、安装google的eclipse插件 到https://d ... -
javadoc命令
2012-04-06 14:54 1392以下内容引用自(原文更全):http://hi.baidu.c ... -
java7文件夹监控
2012-04-04 11:23 2968java7的文件夹监控真是太烂了,折腾了一天,封装的差不多了, ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 15:26 3450问题: 1、使用CellEditor ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 14:52 0问题: 1、使用CellEditor时出现org.eclips ... -
SWT学习笔记——SWT、JFace的配置(含源代码、javadoc的获取)
2012-04-01 14:08 2470具体的可以看官方的http://wiki.eclipse.or ... -
SWT学习笔记7——组件背景图片,鼠标事件,鼠标样式
2012-03-31 11:00 3710import org.eclipse.swt.grap ... -
SWT学习笔记6——Shell相关的事件
2012-03-31 10:23 1558这里有详细的事件列表:http://blog.csdn.net ... -
SWT学习笔记5——简易的多标签文本编辑器
2012-03-30 22:18 2282import java.io.BufferedRead ... -
SWT学习笔记4——系统托盘 system tray
2012-03-30 15:59 1593import org.eclipse.swt.widg ... -
SWT学习笔记3——颜色、字体、图片
2012-03-30 09:41 5887import org.eclipse.swt.gra ... -
SWT笔记2——测试UI线程的事件处理
2012-03-29 21:36 1409import org.eclipse.swt.widg ... -
SWT笔记1,组件的关系,屏幕信息
2012-03-29 21:20 1429import org.eclipse.swt.widg ...
相关推荐
在Java集合框架中,`TreeSet`是一个有序、不可重复的集合,它基于红黑树(Red-Black Tree)数据结构实现。`TreeSet`在许多场景下比其他集合如`ArrayList`或`HashSet`更有优势,因为它的元素总是按特定顺序排列,并且...
此外,还有五个抽象类以及多个实现类,它们共同构成了Java集合框架的基础。 #### 二、核心接口介绍 1. **`Collection`接口**: - 这是最基本的接口,所有其他集合接口都是它的子类。它代表了一组对象,其中可能...
Java集合框架是Java编程中不可或缺的一部分。通过理解这些接口和类的特性及其相互间的关系,可以更高效地编写出健壮的应用程序。同时,合理利用抽象类和迭代器等工具能够进一步提高代码的质量和可维护性。
Java 集合框架是 Java 编程语言中的一种基础数据结构,用于存储和操作对象的集合。 Java 集合框架提供了多种类型的集合类,包括 List、Set、Map 等,每种集合类都有其特点和使用场景。 List 集合 List集合是一种...
Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的类库。在Java中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个...
Java集合框架是Java编程语言中处理对象集合的一套接口和类。该框架提供了用于存储和操作集合的标准方法。在Java集合框架中,基本的接口分为两大类:Collection和Map。 Collection接口用于表示一组对象,称为其元素...
总的来说,Java集合框架是一个强大的工具箱,为开发者提供了丰富的数据结构和算法实现,是理解和掌握Java编程的关键。通过深入学习和实践,我们可以更加熟练地运用这些工具,解决各种复杂的问题。
数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...
在Java集合框架中,还有两个非常重要的接口:Comparable和Comparator。它们用于对对象进行比较排序。实现了Comparable接口的类的对象可以使用Collections.sort()或Arrays.sort()方法进行自动排序。Comparator接口则...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和管理对象的统一方式。这个框架包括了一系列接口、抽象类以及实现类,帮助程序员处理各种数据结构,如列表、集合、映射等。 首先,我们...
Java集合框架是Java编程语言中的核心组件之一,它为数据存储和管理提供了丰富的类和接口。这个培训资料将深入探讨Java集合框架的各个方面,帮助开发者更有效地利用这些工具。 首先,我们要了解Java集合框架的基本...
在Java编程中,集合框架是...在实际应用中,`TreeSet`不仅适用于求并集,还可以用于求交集、差集等集合操作,是Java集合框架中的一个重要工具。了解和熟练掌握`TreeSet`的特性和操作方法对于提升Java编程能力至关重要。
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。本篇文章将深入探讨Java集合框架的各个方面,帮助开发者从基础到高级全面掌握这一关键知识。 首先,我们要...
Java集合框架是Java编程语言中的一个核心组件,它为开发者提供了高效、灵活的数据结构和算法。这个框架使得处理对象集合变得更加简单,同时也提高了代码的可读性和可维护性。以下是对Java集合框架的详细说明: 1. *...
Java集合框架是Java编程语言中一个重要的组成部分,它提供了一组高级数据结构,使得程序员能够高效地管理和操作数据。在本篇文章中,我们将深入探讨Java集合框架中的主要接口和类,以及它们之间的区别。 首先,Java...
在Java集合框架中,TreeSet是一个重要的数据结构,它是Set接口的实现类之一,与HashSet和LinkedHashSet不同,TreeSet具有排序功能,这是因为其不仅继承自AbstractSet,还实现了SortedSet和NavigableSet接口。...
"Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...