- 浏览: 682509 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1888仅作备忘,要学习还是看给的链接吧 1、C++ 中文介绍:htt ... -
利用Doxygen生成C++、Java文档
2013-04-08 16:15 4395示例程序、配置文件及doxygen常见参数文字版参见本文附件 ... -
删除citeulike导出的bib文件中的中文字符,使之能在WinEdt中读取
2012-12-06 18:57 1790在使用Citeulikehttp://citeulike.or ... -
使用jsoup分析网页
2012-12-05 16:12 2663之前用过HTMLParser,许久不更新的东西了,印象中也没那 ... -
JNI中基本类型数组的传递方法(无需拷贝数据!!!)
2012-10-23 17:11 182620、先来看一下主要用到哪些函数: GetIntArrayEle ... -
swig--在java、C#中调用c++写的DLL(以vs2012配置为例)
2012-10-02 22:06 70751、下载、安装: 到http://www.swig.org/d ... -
GAE学习笔记——静态文件、资源文件;GAE中使用velocity模板
2012-07-13 21:49 1421参考资料:https://developers.google. ... -
Google application engine 的Eclipse配置方法
2012-07-11 19:52 15381、安装google的eclipse插件 到https://d ... -
javadoc命令
2012-04-06 14:54 1369以下内容引用自(原文更全):http://hi.baidu.c ... -
java7文件夹监控
2012-04-04 11:23 2937java7的文件夹监控真是太烂了,折腾了一天,封装的差不多了, ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 15:26 3394问题: 1、使用CellEditor ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 14:52 0问题: 1、使用CellEditor时出现org.eclips ... -
SWT学习笔记——SWT、JFace的配置(含源代码、javadoc的获取)
2012-04-01 14:08 2443具体的可以看官方的http://wiki.eclipse.or ... -
SWT学习笔记7——组件背景图片,鼠标事件,鼠标样式
2012-03-31 11:00 3667import org.eclipse.swt.grap ... -
SWT学习笔记6——Shell相关的事件
2012-03-31 10:23 1506这里有详细的事件列表:http://blog.csdn.net ... -
SWT学习笔记5——简易的多标签文本编辑器
2012-03-30 22:18 2255import java.io.BufferedRead ... -
SWT学习笔记4——系统托盘 system tray
2012-03-30 15:59 1546import org.eclipse.swt.widg ... -
SWT学习笔记3——颜色、字体、图片
2012-03-30 09:41 5815import org.eclipse.swt.gra ... -
SWT笔记2——测试UI线程的事件处理
2012-03-29 21:36 1381import org.eclipse.swt.widg ... -
SWT笔记1,组件的关系,屏幕信息
2012-03-29 21:20 1401import org.eclipse.swt.widg ...
相关推荐
(比较的前提:两个对象的类型相同)。java提供了一个Comparable接口,该接口里定义了一个compareTo(Objectobj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。...
15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索策略 16.1 Hibernate的检索策略简介 16.2 类级别的检索策略 16.2.1 立即检索 16.2.2 延迟检索 16.3 一对多...
在java集合框架中,List和Set是两个非常重要的接口,分别用于存储有序和无序的集合。下面我们将通过四个练习题来深入了解List和Set的使用。 练习题1:获取10个1至20的随机数 在这个练习题中,我们需要编写一个程序,...
3集合框架 11 3.1 如何遍历一个List/Set(foreach、Iterator、Lambda表达式) 11 3.2 如何遍历一个Map(foreach、Iterator、Lambda表达式) 11 3.3 如何实现一个Set<Student> set = new TreeSet(); 12 3.4 如何实现...
Java语言的集合框架是指Java语言提供的一组用于存储和处理数据的类和接口。集合框架包括ArrayList、LinkedList、HashSet、TreeSet等。ArrayList是Java语言提供的一种数组列表,LinkedList是Java语言提供的一种链表。...
List、Set、Queue和Map是Java集合框架中的四个主要接口,它们各自具有不同的特点和用途。 1. List(列表): - 允许重复元素。 - 具有按照元素插入顺序维护的有序集合。 - 可以通过索引访问和操作元素。 - 常见实现类...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
集合框架中的TreeSet的传统二叉树进行比较。 它在内部实现为二叉搜索树。 任务 实现扩展二叉树 在根部插入元素以获得更好的性能 与红黑树( TreeSet )进行比较 实现序列化 蛋滴。 移动游戏开发模块是针对具有更传统...
11.1 Java集合框架概述264 11.2 Collection接口264 11.2 Set接口实现类266 11.2.1 实现类HashSet267 11.2.2 实现类LinkHashSet270 11.2.3 实现类TreeSet272 11.3 List接口实现类277 11.3.1 实现类ArrayList277 ...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 40 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 ...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...