黑马程序员技术交流社区
标题:
Collection和Collections有什么关系?List和Set有什么异同点?Map...
[打印本页]
作者:
坏男孩
时间:
2014-5-3 18:26
标题:
Collection和Collections有什么关系?List和Set有什么异同点?Map...
之前学java怎么没接触过这些呢,求详细讲解。
作者:
寻找人生目标
时间:
2014-5-3 18:36
本帖最后由 寻找人生目标 于 2014-5-3 18:46 编辑
collection是集合的根接口。
java.util.Collections是类。此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
Collections
对集合进行查找
取出集合中的最大值,最小值
对
List
集合进行排序 等等
集合的体系
Collection
|-------List 有顺序可重复
|-------Set 无顺序不可重复
3.Collection重点的API
1.add
2.iterator()
Iterato接口中的方法
hasNext()
next();
remove();
迭代器使用步骤与注意事项。
3.size
4.clear
5.isEmpty
6.contains
7.remove
作者:
寻找人生目标
时间:
2014-5-3 18:38
List集合的特点:
1.有顺序.
因为List集合是有顺序的,所有我们可以像操作数组那样,对集合中的元素通过索引直接操作。
2.可重复.
Set集合特点:无顺序不重复
重复:equals
顺序:是指装入的元素顺序与取出的元素顺序不一致。
1.对List集合遍历
1.Iterator
2.ListIterator
3.for+get+size
4.增强for
2.对Set集合遍历
1.Iterator
2.增强for
作者:
skill20
时间:
2014-5-3 18:55
Collection 和 Collections的区别:
Collections是个java.util下的类,是针对集合类的一个工具类,提供一系列静态方法,实现对集合的查找、排序、替换、线程安全化(将非同步的集合转换成同步的)等操作。
Collection是个java.util下的接口,它是各种集合结构的父接口,继承于它的接口主要有Set和List,提供了关于集合的一些操作,如插入、删除、判断一个元素是否其成员、遍历等。
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。
Map集合存储和Collection有着很大不同:
Collection一次存一个元素;Map一次存一对元素。
Collection是单列集合;Map是双列集合。
Map中的存储的一对元素:一个是键,一个是值,键与值之间有对应(映射)关系。
特点:要保证map集合中键的唯一性。
作者:
寻找人生目标
时间:
2014-5-3 18:57
import java.util.ArrayList;
import java.util.List;
//List集合中特有方法
public class ListDemo1 {
public static void main(String[] args) {
fun3();
}
// add(int index,Object obj)
public static void fun1() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(1, "ok"); // 将ok插入到1的位置,而原来元素后移。
System.out.println(list);
}
// set(int index,Object obj)
public static void fun2() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.set(1, "ok")); // 使用ok将原来1位置上的元素替换。
System.out.println(list);
}
// get(int index)
public static void fun3() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
Object obj = list.get(1);
System.out.println(obj);
}
}
复制代码
作者:
寻找人生目标
时间:
2014-5-3 18:58
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//List集合的遍历
public class ListDemo2 {
public static void main(String[] args) {
fun2();
}
// 迭代器
public static void fun1() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
for (Iterator it = list.iterator(); it.hasNext();) {
System.out.println(it.next());
}
}
// get+size+for
public static void fun2() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
for (int i = 0; i < list.size(); i++) {
Object obj = list.get(i);
System.out.println(obj);
}
}
}
复制代码
作者:
寻找人生目标
时间:
2014-5-3 18:59
import java.util.ArrayList;
import java.util.List;
//List集合常用API
public class ListDemo3 {
public static void main(String[] args) {
fun3();
}
//subList
public static void fun3(){
List list = new ArrayList();
list.add("abc");
list.add("def");
list.add("kkk");
List subList=list.subList(1, 2);
System.out.println(subList);
}
//remove
public static void fun2() {
List list = new ArrayList();
list.add("abc");
list.add("def");
list.add("kkk");
Object obj = list.remove(2); // 将索引为2的元素删除。返回的就是被删除的元素
System.out.println(obj);
System.out.println(list);
}
//indexOf lastIndexOf
public static void fun1() {
List list = new ArrayList();
list.add("abc");
list.add("def");
list.add("kkk");
list.add("def");
// int index = list.indexOf("def"); // 得到第一个def的索引
int index = list.lastIndexOf("def"); // 从后查找,第一次出现的def的索引
System.out.println(index);
}
}
复制代码
作者:
寻找人生目标
时间:
2014-5-3 19:01
import java.util.HashSet;
import java.util.Set;
//演示Set集合无序不重复.
public class HashSetDemo1 {
public static void main(String[] args) {
Set set = new HashSet();
set.add("abc");
set.add(10);
set.add("aaa");
System.out.println(set.add("abc")); //false
System.out.println(set);
}
}
复制代码
作者:
寻找人生目标
时间:
2014-5-3 19:02
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
//遍历Set集合 ----只能通过迭代器。
public class HashSetDemo2 {
public static void main(String[] args) {
Set set = new HashSet();
set.add("abc");
set.add(10);
set.add("aaa");
//遍历
for(Iterator it=set.iterator();it.hasNext();){
System.out.println(it.next());
}
}
}
复制代码
作者:
0小菜鸟0
时间:
2014-7-31 21:12
对集合不是太熟,混个脸熟
作者:
Unknown_Explore
时间:
2014-9-13 12:43
来看看,我也刚好想问
作者:
Unknown_Explore
时间:
2014-9-13 13:57
通过网络努力找回来,然后自己组织了一下的回答。
答:1.Collection是java.util下的集合接口,是集合类的上级接口。Collection提供了对集合对象
* 进行基本操作的通用接口方法,它在Java类库中有很多具体的实现,Collection的意义在于为各种
* 具体的集合提供最大化的统一操作方式。
* Collections是一个包装类,有关于集合操作的一系列静态方法,实现对各类集合的搜索,排序,线程
* 安全化等操作。
*
* 2.List和Set的相同点在于它们都继承Collection,它们的不同点在于,List是一种有序的Collection,
* 可以按照索引来访问List中的元素,Set是一种不包含重复元素的Collection,只能有一个NULL元素.
*
* 3.Map有三种常用类,分别是HashMap,HashTable,TreeMap.
* HashMap的特点是,效率高,允许空值,线程不同步
* HashTable的特点是,效率低,不允许空值,线程同步
* TreeMap的特点是,所有元素保持一个固定的顺序,可用于Map集合中元素排序,不允许键对象是null
作者:
羽狼之翼
时间:
2014-12-31 22:30
赞!顶一个!
作者:
娃娃菜
时间:
2015-3-11 20:59
Unknown_Explore 发表于 2014-9-13 13:57
通过网络努力找回来,然后自己组织了一下的回答。
赞一个{:2_42:}
作者:
落雪
时间:
2015-3-31 21:20
学习了。。。。。。。。。。。。
作者:
814326663
时间:
2015-5-6 15:47
我也在看区别 但是list跟map不太好
作者:
Troy-Fu
时间:
2015-5-8 00:07
Unknown_Explore 发表于 2014-9-13 13:57
通过网络努力找回来,然后自己组织了一下的回答。
赞一个,顶起来,挺全的
作者:
guanyang
时间:
2015-5-21 10:06
我也不懂~~~~~
作者:
曹乐乐
时间:
2015-5-22 15:49
谢谢了。。。。。。。
作者:
xxz
时间:
2015-5-26 12:35
Collection 和 Collections的区别。 Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 Collection是个java.util下的接口,它是各种集合结构的父接口。 List集合的特点: 1.有顺序. 因为List集合是有顺序的,所有我们可以像操作数组那样,对集合中的元素通过索引直接操作。 2.可重复. Set集合特点:无顺序不重复 重复:equals 顺序:是指装入的元素顺序与取出的元素顺序不一致。 1.对List集合遍历 1.Iterator 2.ListIterator 3.for+get+size 4.增强for 2.对Set集合遍历 1.Iterator 2.增强for
作者:
chang2387438978
时间:
2015-6-29 10:02
感觉有点难
作者:
不安静的丑男子
时间:
2015-8-6 07:15
赞一个赞一个赞一个赞一个赞一个
作者:
械勒的时间
时间:
2015-8-14 18:23
刚好基础测试里有这个东西,来看看
作者:
切比雪夫
时间:
2015-10-27 21:18
学习了,谢谢
作者:
王开冰
时间:
2015-11-26 17:43
学习了.....................
作者:
wangyoucao
时间:
2015-11-28 22:28
这个,建议系统的学习吧,这个散乱的学习的话,很多原理性的东西都搞不清
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2