java--集合概述
【摘要】
java--集合概述
一、集合框架总览图
二、为什么需要集合
为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式。
数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可...
java--集合概述
一、集合框架总览图
二、为什么需要集合
- 为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式。
- 数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储任意数据类型,集合只能存储对象。
- 集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
三、集合分类概述
四、集合的两大接口
Java集合类主要由两个接口派生出来:
Collection
Set :不能存放重复对象
List :可存放重复对象,有序
Queue :队列
SortedSet :可对集合数据排序
Map
SortedMap :可对集合数据排序
Collection和Iterator接口实例
-
package collection;
-
-
import java.util.ArrayList;
-
import java.util.Collection;
-
import java.util.Date;
-
import java.util.Iterator;
-
-
-
/**
-
* 在集合里的存储,永远存的是 一个引用地址
-
* @author will
-
*
-
*/
-
public class CollectionDemo {
-
public static void main(String[] args) {
-
-
Collection c = new ArrayList();
-
/*
-
* boolean add(E e)
-
确保此 collection 包含指定的元素(可选操作)。
-
-
boolean addAll(Collection c)
-
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
-
void clear()
-
移除此 collection 中的所有元素(可选操作)。
-
-
* */
-
c.add("A");
-
c.add("A");
-
//c.add(1);//java5之前不允许,Java5之前没有自动装箱
-
c.add(new Integer(1));//
-
c.add(23);
-
-
-
StringBuilder sb = new StringBuilder("SB");
-
-
c.add(sb);
-
boolean b = c.add("A");
-
System.out.println(b);
-
-
System.out.println(c);
-
-
sb.append("OOXX");
-
System.out.println(c);
-
-
Collection c2 = new ArrayList();
-
c2.add(new Date());
-
c2.add("春哥");
-
-
-
c.addAll(c2);
-
-
System.out.println(c);
-
-
//c.clear();
-
System.out.println(c);
-
-
/*
-
* boolean contains(Object o)
-
如果此 collection 包含指定的元素,则返回 true。
-
boolean containsAll(Collection<?> c)
-
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
-
-
* */
-
-
System.out.println(c.contains("春哥"));
-
System.out.println(c.containsAll(c2));
-
System.out.println(c2.containsAll(c));
-
-
/*
-
* boolean isEmpty()
-
如果此 collection 不包含元素,则返回 true。
-
* */
-
-
System.out.println("c.isEmpty()= "+c.isEmpty());
-
-
/*
-
* boolean remove(Object o)
-
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
-
boolean removeAll(Collection<?> c)
-
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
-
* */
-
System.out.println(c.remove("凤姐"));
-
System.out.println(c.remove("春哥"));
-
System.out.println(c);
-
-
c.removeAll(c2);
-
System.out.println(c);
-
/*
-
* boolean retainAll(Collection<?> c) 其实就是求两个集合的交集
-
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
-
* */
-
-
c2.add(23);
-
c2.add("A");
-
c.retainAll(c2);
-
System.out.println(c);
-
/**
-
* int size() 返回此 collection 中的元素数。
-
*/
-
-
System.out.println(c.size());
-
/**
-
* Object[] toArray()
-
返回包含此 collection 中所有元素的数组。
-
*/
-
-
-
Object[] os = c.toArray();
-
-
for (Object o : os) {
-
System.out.println("-->" + o);
-
}
-
/**
-
* for-each使用的场合, 数组和 Iterable对象
-
*/
-
System.out.println("------------------");
-
-
for (Object object : c) {
-
System.out.println(object);
-
}
-
-
/**
-
* Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器。
-
*
-
* Iterator类:
-
* boolean hasNext()
-
如果仍有元素可以迭代,则返回 true。
-
Object next()
-
返回迭代的下一个元素。
-
void remove()
-
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
-
-
*/
-
System.out.println("==================");
-
Iterator it = c.iterator();
-
-
//每调用next方法后,指针就会向后移动一个位置
-
System.out.println(it.next());
-
System.out.println(it.next());
-
System.out.println(it.next());
-
System.out.println(it.next());
-
//System.out.println(it.next());//java.util.NoSuchElementException指针已到最后,没有下一个元素了
-
-
System.out.println(it.hasNext());
-
if(it.hasNext()){
-
System.out.println(it.next());
-
}
-
-
it = c.iterator();
-
while(it.hasNext()){
-
System.out.println("----->"+it.next());
-
}
-
-
/*
-
* for(it = c.iterator();it.hasNext();){
-
System.out.println("for----->"+it.next());
-
}
-
-
老外喜欢用,就是因为性能高一低;此时it在for语句里创建,声明周期短一些
-
*
-
* */
-
-
for(it = c.iterator();it.hasNext();){
-
System.out.println("for----->"+it.next());
-
}
-
-
/**
-
* for-each
-
*/
-
-
}
-
}
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/79962332
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)