黑马程序员--集合

来源:互联网 发布:java list<>遍历 编辑:程序博客网 时间:2024/06/04 08:52

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------



集合类:集合类是一些特殊的类,专门用来存放其他类对象的“容器”。主要是完成一些数据库和数据结构的功能。




集合类的出现,使我们的程序更加强大,更加简单。




数据--》对象--》集合:长度可变,类型可以不一致,既可以存Demo,也可以存int
数据--》对象--》数组:长度可变。


集合可以存储不同类型的对象
集合中存放的不能是对象实体
存放的对象是内存地址。


Collection定义了集合框架的共性功能。
1,添加
add(e);
addAll(collection);


2,删除
remove(e);
removeAll(collection);
clear();


3,判断。
contains(e);
isEmpty();


4,获取
iterator();
size();


5,获取交集。
retainAll();


6,集合变数组。
toArray();






1,add方法的参数类型是Object。以便于接收任意类型对象。


2,集合中存储的都是对象的引用(地址)




什么是迭代器呢?
其实就是集合的取出元素的方式。
如同抓娃娃游戏机中的夹子。


迭代器是取出方式,会直接访问集合中的元素。
所以将迭代器通过内部类的形式来进行描述。
通过容器的iterator()方法获取该内部类的对象。


什么是迭代器呢?
其实就是集合的取出元素的方式


获取迭代器:用于取出集合中的元素


/*
在迭代时循环中next调用一次,就要hasNext判断一次。
Iterator it = al.iterator();


while(it.hasNext())
{
sop(it.next()+"...."+it.next());
}
*/












ArrayList集合
将自定义对象作为元素存到ArrayList集合中,并去除重复元素。


比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。




思路:
1,对人描述,将数据封装进人对象。
2,定义容器,将人存入。
3,取出。






List集合判断元素是否相同,依据是元素的equals方法。






|--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。、
|--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true。
如果元素的hashcode值不同,不会调用equals。


注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。




|--TreeSet:


Set集合的功能和Collection是一致的。






LinkedList:特有方法:
addFirst();
addLast();


getFirst();
getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException


removeFirst();
removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException




在JDK1.6出现了替代方法。


offerFirst();
offerLast();




peekFirst();
peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。


pollFirst();
pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。





0 0