Java -- 容器使用 Set, List, Map, Queue
2023-09-11 14:20:54 时间
ArrayList 的迭代器还有 ListIterator 可以有正反两种查询,先hasNext知道最后 hasPrevious才能有值
[java] view plaincopy
ListIterator String it2 = c.listIterator();
while(it2.hasNext())
System.out.println( "hasNext " + (String)it2.next() );
while(it2.hasPrevious())
System.out.println( "hasPrevious " + (String)it2.previous() );
HashSet集合判断两个元素相等的标准是两个对象通过equals 方法比较相等,并且两个对象的hashCode()方法返回值也相等。
向HashSet中添加可变对象时,必须小心,如果修改HashSet集合中的对象有可能导致该对象与集合中其他对象相等,从而导致Hashset无法准确访问该对象。
3. TreeSet 集合有序 由于TreeSet有序, 所有有访问第一个,前一个,后一个,最后一个并可以截取子集。 排序的顺序并不是根据插入的顺序,而是根据元素实际值来排序。
System.out.println(nums.last()); System.out.println(nums.headSet(3)); //小于3,但不包括3 System.out.println(nums.tailSet(3)); //大于等于3 System.out.println(nums.subSet(1, 3)); 大于等于1,小于3
[1, 2] TreeSet自然排序:根据元素大小,升序排列。 对于TreeSet判断两个元素相等的标准是,两个对象通过equals方法比较返回true,并且通过compareTo(Object obj)比较 返回0。 和HashSet一样集合中为可变对象时,修改对象值后可能容易出错,为了健壮性,HashSet和TreeSet推荐放入不可变对象。 TreeSet定序排列: 使用comparator接口帮助。 4. EnumSet 是一个专为枚举类设计的集合类,其中所有的值都是指定枚举类型的枚举值。没有暴露构造器,必须用静态方法创建。
public static void main(String[] args) { EnumSet es1 = EnumSet.allOf(Season.class); //创建一个EnumSet集合,集合元素就是Season枚举类的全部枚举值 System.out.println(es1); EnumSet es2 = EnumSet.noneOf(Season.class); //空集合,但指定其中的元素是Season类的枚举值 System.out.println(es2); es2.add(Season.SPRING); es2.add(Season.SUMMER); System.out.println(es2); EnumSet es3 = EnumSet.of(Season.SPRING, Season.SUMMER); // 以指定枚举值创建EnumSet System.out.println(es3); EnumSet es4 = EnumSet.range(Season.SPRING, Season.FALL); // 范围值 System.out.println(es4); EnumSet es5 = EnumSet.complementOf(es4); //Season中 除去es4里剩下的部分 为es5 System.out.println(es5);
5. LinkedList 不仅可以当做双向队列使用,还可以当做“栈”使用,其包含有 pop出栈 和 push入栈 方法
System.out.println( books.peekFirst() ); //访问不删除 System.out.println( "log1: " + books ); System.out.println( books.pollFirst() ); //访问并删除 System.out.println( "log2: " + books );
HashMap 和 HashTable 判断Value相等的条件只需要equals方法返回true即可,判断Key相等的条件是equals()和hashCode()返回值都相等。 LinkedHashMap以链表来维护内部顺序。性能低于HashMap,消耗低于TreeMap。 TreeMap key的排序也是根据红黑树排列,有两种排序方式,自然排序和定制排序。 WeekHashMap 只保留key对应对象的弱引用,可能被垃圾回收。
public static void main(String[] args) { HashMap Integer, String map1 = new HashMap Integer, String map1.put(1, "hello"); map1.put(2, "world"); System.out.println(map1); System.out.println(map1.containsKey(3)); System.out.println(map1.containsValue("world")); map1.put(2, "aya"); System.out.println(map1); for(Map.Entry Integer, String m : map1.entrySet()) System.out.println(m); System.out.println(m.getKey()); EnumMap map2 = new EnumMap(Season.class); map2.put(Season.SPRING, "spring"); map2.put(Season.SUMMER, "summer"); System.out.println(map2); 最新内容请见作者的GitHub页:http://qaseven.github.io/
大数据开发基础的编程语言的Java的语言基础的容器 当谈到大数据开发的编程语言时,Java常常会被提到。Java是一种强类型、面向对象的编程语言,具有跨平台性和广泛的应用范围。在大数据领域中,Java可以与多个容器技术结合使用,这些容器技术旨在管理和部署分布式应用程序。在本文中,我们将介绍Java编程语言基础以及它与容器技术的结合。
Java集合容器面试题 TreeSet 要求存放的对象所属的类必须实现 Comparable 接口,该接口提供了比较元素的 compareTo()方法,当插入元素时会回调该方法比较元素的大小。TreeMap 要求存放的键值对映射的键必须实现 Comparable 接口从而根据键对元素进 行排 序。
为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ? 好久没写文章了, 今天之所以突然心血来潮, 是因为昨天出现了这样一个情况: 我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露, 导致OutOfMemoryError, 但是
HashSet集合判断两个元素相等的标准是两个对象通过equals 方法比较相等,并且两个对象的hashCode()方法返回值也相等。
![](http://www.51testing.com/attachments/2013/10/14982672_201310300939241wU3W.jpg)
3. TreeSet 集合有序 由于TreeSet有序, 所有有访问第一个,前一个,后一个,最后一个并可以截取子集。 排序的顺序并不是根据插入的顺序,而是根据元素实际值来排序。
System.out.println(nums.last()); System.out.println(nums.headSet(3)); //小于3,但不包括3 System.out.println(nums.tailSet(3)); //大于等于3 System.out.println(nums.subSet(1, 3)); 大于等于1,小于3
[1, 2] TreeSet自然排序:根据元素大小,升序排列。 对于TreeSet判断两个元素相等的标准是,两个对象通过equals方法比较返回true,并且通过compareTo(Object obj)比较 返回0。 和HashSet一样集合中为可变对象时,修改对象值后可能容易出错,为了健壮性,HashSet和TreeSet推荐放入不可变对象。 TreeSet定序排列: 使用comparator接口帮助。 4. EnumSet 是一个专为枚举类设计的集合类,其中所有的值都是指定枚举类型的枚举值。没有暴露构造器,必须用静态方法创建。
public static void main(String[] args) { EnumSet es1 = EnumSet.allOf(Season.class); //创建一个EnumSet集合,集合元素就是Season枚举类的全部枚举值 System.out.println(es1); EnumSet es2 = EnumSet.noneOf(Season.class); //空集合,但指定其中的元素是Season类的枚举值 System.out.println(es2); es2.add(Season.SPRING); es2.add(Season.SUMMER); System.out.println(es2); EnumSet es3 = EnumSet.of(Season.SPRING, Season.SUMMER); // 以指定枚举值创建EnumSet System.out.println(es3); EnumSet es4 = EnumSet.range(Season.SPRING, Season.FALL); // 范围值 System.out.println(es4); EnumSet es5 = EnumSet.complementOf(es4); //Season中 除去es4里剩下的部分 为es5 System.out.println(es5);
5. LinkedList 不仅可以当做双向队列使用,还可以当做“栈”使用,其包含有 pop出栈 和 push入栈 方法
System.out.println( books.peekFirst() ); //访问不删除 System.out.println( "log1: " + books ); System.out.println( books.pollFirst() ); //访问并删除 System.out.println( "log2: " + books );
HashMap 和 HashTable 判断Value相等的条件只需要equals方法返回true即可,判断Key相等的条件是equals()和hashCode()返回值都相等。 LinkedHashMap以链表来维护内部顺序。性能低于HashMap,消耗低于TreeMap。 TreeMap key的排序也是根据红黑树排列,有两种排序方式,自然排序和定制排序。 WeekHashMap 只保留key对应对象的弱引用,可能被垃圾回收。
public static void main(String[] args) { HashMap Integer, String map1 = new HashMap Integer, String map1.put(1, "hello"); map1.put(2, "world"); System.out.println(map1); System.out.println(map1.containsKey(3)); System.out.println(map1.containsValue("world")); map1.put(2, "aya"); System.out.println(map1); for(Map.Entry Integer, String m : map1.entrySet()) System.out.println(m); System.out.println(m.getKey()); EnumMap map2 = new EnumMap(Season.class); map2.put(Season.SPRING, "spring"); map2.put(Season.SUMMER, "summer"); System.out.println(map2); 最新内容请见作者的GitHub页:http://qaseven.github.io/
大数据开发基础的编程语言的Java的语言基础的容器 当谈到大数据开发的编程语言时,Java常常会被提到。Java是一种强类型、面向对象的编程语言,具有跨平台性和广泛的应用范围。在大数据领域中,Java可以与多个容器技术结合使用,这些容器技术旨在管理和部署分布式应用程序。在本文中,我们将介绍Java编程语言基础以及它与容器技术的结合。
Java集合容器面试题 TreeSet 要求存放的对象所属的类必须实现 Comparable 接口,该接口提供了比较元素的 compareTo()方法,当插入元素时会回调该方法比较元素的大小。TreeMap 要求存放的键值对映射的键必须实现 Comparable 接口从而根据键对元素进 行排 序。
为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ? 好久没写文章了, 今天之所以突然心血来潮, 是因为昨天出现了这样一个情况: 我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露, 导致OutOfMemoryError, 但是
相关文章
- Java 并发工具包 java.util.concurrent 用户指南
- 回归JAVA: java文件编译后,出现xx$1.class的原因
- 1063 Set Similarity (25 分)【难度: 一般 / 知识点: STL中set的应用】
- JAVA单元测试框架-12-java代码重复执行失败的测试用例
- Java 集合底层原理剖析(List、Set、Map、Queue)
- Java - CentOS下JDK的安装教程(及JAVA_HOME配置、以jdk1.8为例)
- 第49节:Java集合框架中底层文档的List与Set
- java获取随机不重复的数得值
- 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格
- Java IDEA中设置导入import java.xx.*和设置导入具体的import java.xx.yy;
- Java List/Set/Map
- Java 并发工具包 java.util.concurrent 大全
- Java中Array、List、Set、Map
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- java.lang.OutOfMemoryError: Java heap space解决方法
- java中list、set和map 的区别(转)
- Java学习---JAVA的类设计
- Java中的set集合如何理解(三)——精简
- Java空指针异常解决java.lang.NullPointerException解决心得
- 【JAVA】Exception in thread "main" java.lang.NoClassDefFoundError
- Java操作Mongodb 保存/读取java对象到/从mongodb
- Java实现二维码技术探讨。
- Java 多项式求值
- [java][db]JAVA分布式事务原理及应用
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- eclipse配置tomcat后出现:java virtual machine launcher Error:Could not ……,Program will exit.
- java.io.FileNotFoundException: D:tomcat2apache-tomcat-5.5.26webappsROOTworkflatUpload (拒绝访问。)
- Java list、map、set、vector集合类型中的null值