黑马程序员---一DAY16总结--java中你必须掌握的集合框架技术

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

java中不得不掌握集合框架技术

集合类和容器

为什么会出现集合?

在面向对象语言中,对事物的描述都是以对象的形式,所以为了方便对多个对象

的操作,就要对对象进行存储,集合就是存储对象的最常见的一种方式。

数组虽然也可以存储对象,但是长度是固定的;那么集合的长度是可变的。

所以数组可以存储任意数据类型,集合只能存储对象。

集合类的特点

集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象

集合类比数组强大,类似于包装类与基本数据类型



两大接口

java集合类主要是由两个接口派生出来的

Collection

Set:不能存放重复对象

List:可存放重复对象,有序

Queus:队列

SortedSet:可对集合数据排序

Map

SortedMap:可对集合数据排序


Collection接口

方法:boolean add(Object o):该方法用于向集合里面添加一个元素,若集合

对象被添加操作改变了,返回ture

boolean addAll(Collection c):把集合里面的所有元素添加到指定集合里面去,如果集合

对象被添加操作改变了返回turn

void clear():清除集合里面的所有元素,将集合长度变为0

boolean contains(Object o)返回集合里是否包含集合c所有元素

boolean isEmpty():返回集合是否为空(长度是否为0)。

Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。

boolean remove(Object o):删除集合中指定元素o。

boolean removeAll(Collection c):从集合中删除集合c里面的元素。若删除一个或以上返回true。

boolean retainAll(Collection c):从集合中删除集合c里不包含的元素。

int size():得到集合元素的个数。

Object[] toArray():把集合转成一个数组,所有集合元素编程数组元素。


public class Demo10 {
	public static void main(String[] args) {
		Collection<String> c = new ArrayList<String>();
		
		c.add("A");
		c.add("A");
		c.add("A");
		c.add("A");
		//c.add(new Date());上面写了泛型,这个语句就是错误的了,因为泛型规定了加进来的类型!
		System.out.println(c);
}
}

Iterater接口

Iterator主要遍历Collection集合中的元素,也有称为迭代精灵

boolean hasNext():若被迭代的集合元素还没有被遍历,返回ture

Object next():返回集合的下一个元素

void remove():删除集合上一次next()方法返回的元素。(若集合中有多个相同的元素

,都可以删除)

iterator 对于集合才能用,for不同,只要是循环都可用


迭代是取出集合中元素的一种方式

因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器

迭代器在Collection中有iterator方法,所以每一个子类集合对象都具备迭代器


集合遍历输出方式


Iterator:迭代输出

一旦操作集合的遍历输出,首先Iterator接口

ListIterator:Iterator子接口,专门输出List中的元素;

Enumeration:古老的输出方式,迭代Vector元素,被Iterator取代;

foreach:可输出数组和Iterable对象;


集合遍历输出方式:

1.        Iterable接口(迭代遍历) 注:优先选择Iterator接口,遍历Collection里所有元素,也称为迭代器和迭代精灵;迭代是取出集合中元素的一种推荐方式。

2.        Foreach循环 注:可以直接用,使用场合:数组和Iterable对象!

3.        For循环     注:在()内实例化Iterable对象,进行遍历!

4.        先用toArray方法输出成为数组,再用Foreach循环!

第一个和第三个很类似,第二个和第四个很类似!

package com.itheima;

//遍历输出的四种方式

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class joinTest {
	public static void main(String[] args) {

		List<String> l = new ArrayList();

		l.add("1");
		l.add("2");
		l.add("3");
		l.add("4");

		System.out.println(l);
		/**
		 * 遍历输出:四种方式
		 */

		// 1、推荐使用的Iterator对象,迭代输出!
		Iterator it = l.iterator();
		while (it.hasNext()) {
			System.out.println("迭代输出:" + it.next());
		}

		// 2、对集合进行fore循环!
		for (String str : l) {
			System.out.println("fore集合迭代输出:" + str);
		}

		// 3、for循环迭代,在for方法体内部实例化Iterator对象!
		int i = 0;// for方法体内定义项不能出现多种不同类型
		for (Iterator iter = l.iterator(); i < l.size(); i++) {
			System.out.println("for循环迭代实例化输出:" + iter.next());
		}

		// 4、先将集合转换为数组,再利用数组的遍历输出;
		Object[] o = l.toArray();
		for (Object object : o) {
			System.out.println("转换数组迭代输出:" + object);
		}
	}
}


-----------------------  android培训 java培训 、java学习型技术博客、期待与您交流! ----------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值