Java 集合类(一)
2013-12-01 15:20
423 查看
今天我们先讲一下Collection:
Collection和Collections的区别:
java.util.Collection是一种java集合接口,它提供了对集合对象的基本操作通用接口方法,同时它还有很多具体实现:
注:以上图片只列举常用集合类
java.util.Collections是一个包装类,它包含许多有关集合操作的静态多态方法,此类不能实例化,它就像个工具类,服务与java的Collection。有关Collections的具体方法可参考JDK说明文档(部分也可见),下面我举出几个方法示例:
运行结果如下:
可在上面代码的基础上添加同类方法,如:
把上面sort()中的Collections.sort(l);--->Collections.shuffle(l); //随机排序
--->Collections.reverse(l); //反转排序
--->Collections.min(l); //返回最小元素(max,最大)
--->Collections.fill(l,"334"); //用334替换所有元素
......
2.常见java容器的比较:
注:在满足要求的情况下,Map应尽量使用HashMap,Set应尽量使用HashSet
3.Collection的学习:
实例1:
实例2:
下一节学习List部分!!
### 学习从来都是一个过程,对对错错对对...若文中有错误,还望读者批评指出 ###
Collection和Collections的区别:
java.util.Collection是一种java集合接口,它提供了对集合对象的基本操作通用接口方法,同时它还有很多具体实现:
注:以上图片只列举常用集合类
java.util.Collections是一个包装类,它包含许多有关集合操作的静态多态方法,此类不能实例化,它就像个工具类,服务与java的Collection。有关Collections的具体方法可参考JDK说明文档(部分也可见),下面我举出几个方法示例:
import java.util.Collection; import java.util.Collections; import java.util.ArrayList; import java.util.List; public class test { private double[] a = {123,33,423,655,4553}; List<Double> l = new ArrayList(); List<Double> l2 = new ArrayList(); public static void main(String[] args) { new test().sort(); } public void sort(){ for(int i = 0; i<a.length;i++ ){ l.add(a[i]); } Collections.sort(l); for(int i = 0 ;i<a.length;i++){ System.out.println(l.get(i)); } } }
运行结果如下:
可在上面代码的基础上添加同类方法,如:
把上面sort()中的Collections.sort(l);--->Collections.shuffle(l); //随机排序
--->Collections.reverse(l); //反转排序
--->Collections.min(l); //返回最小元素(max,最大)
--->Collections.fill(l,"334"); //用334替换所有元素
......
2.常见java容器的比较:
接口 | 特性 | 实现类 | 实现类特性 | 成员要求 |
List | 线性、有序的存储容器,可通过索引访问元素 | ArrayList | 数组实现。非同步。 | |
Vector | 类似ArrayList,同步。 | |||
LinkedList | 双向链表。非同步。 | |||
Map | 保存键值对成员 | HashMap | 基于哈希表的 Map 接口的实现,满足通用需求 | 任意Object对象,如果修改了equals方法,需同时修改hashCode方法 |
TreeMap | 默认根据自然顺序进行排序, 或者根据创建映射时提供的 Comparator进行排序 | 键成员要求实现Comparable接口,或者使用Comparator构造TreeMap。键成员一般为同一类型。 | ||
LinkedHashMap | 类似于HashMap,但迭代遍历时取得“键值对”的顺序是其插入顺序或者最近最少使用的次序 | 与HashMap相同 | ||
IdentityHashMap | 使用==取代equals()对“键值”进行比较的散列映射 | 成员通过==判断是否相等 | ||
WeakHashMap | 弱键映射,允许释放映射所指向的对象 | |||
ConcurrentHashMap | 线性安全的Map | |||
Set | 成员不能重复 | HashSet | 为快速查找设计的Set | 元素必须定义hashCode() |
TreeSet | 保持次序的Set,底层为树结构 | 元素必须实现Comparable接口 | ||
LinkedHashSet | 内部使用链表维护元素的顺序(插入的次序) | 元素必须定义hashCode() |
3.Collection的学习:
实例1:
import java.util.*; public class SimpleCollection{ public static void main(String[] args){ Collection<Integer> c = new ArrayList<Integer>(); for(int i = 0;i < 10; i++) c.add(i); //Autoboxing for(Integer i: c) System.out.println(i +", "); } } /* 0,1,2,3,4,5,6,7,8,9, */
实例2:
/* 如何向Collection添加一组元素 */ //以下是方法体 Collection<Integer> collection = new ArrayList<Integer> (Arrays.asList(1,2,3,4,5)); //Array像Collections一样是工具类 Integer[] moreInt = {6,7,8,9,10}; Collection.addAll(Arrays.asList(moreInt)); Collections.addAll( collection,11,12,13,14); //Collection对象作参数 Collections.addAll( collection, moreInt); List<Integer> list = Arrays.asList(16,17,18); list.set(1,99); //list.add(21) //错误,asList产生的List的长度不可变,只能修改元素值
下一节学习List部分!!
### 学习从来都是一个过程,对对错错对对...若文中有错误,还望读者批评指出 ###
相关文章推荐
- JAVA-11.3-模拟斗地主洗牌、发牌、并进行排序(集合)
- Java集合---LinkedList源码解析
- Java之集合框架 Set集合的特性以及LinkedHashSet的特性
- java_集合体系之总体框架——01
- [Java 13 类集合] Iterator, Properties, Collections
- 简述java常用集合以及实现原理
- 第六篇:JAVA集合之TreeMap源码剖析
- java中List、Array、Map、Set等集合相互转换
- Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)
- JAVA--集合(Collection)
- Java_集合_Collections工具类
- java工具集和类库集合
- java 集合 entity
- Java集合学习
- Java集合---ConcurrentHashMap原理分析
- 基于Java中的数值和集合详解
- java中的集合(Collection)
- java集合总结(转载)
- 学生管理系统(Java集合的方式)
- Java集合的Stack、Queue、Map的遍历