第16章 集合(上)

一、集合的概念

二、Collection接口

package day72701;

import java.util.ArrayList;
import java.util.Collection;
/*
 * 三个重要集合,两大家族,四个重要接口,六个重要实现
 * 
 * 三个集合是Set、List、Map
 * Set:无序、不可重复
 * List:有序、可重复
 * Map:以键值对的形式保存数据,键不能重复,值可重复
 * 
 * 四个重要接口是Collection、List、Set、Map
 * 
 * 六个重要实现:
 * Set:HashSet、TreeSet
 * List:ArrayList、LinkedList
 * Map:HashSet、ArrayList、LinkedList、HashMap
 */
public class CollectionTest {
	public static void main(String[] args) {
		Collection list = new ArrayList();
		//add往集合中添加数据
		list.add("1234");
		//集合中不能保存基本数据类型,而下方代码不报错的原因是jdk1.5
		//之后,可以发生自动装箱,所以下方数据保存的时候是包装类类型
		list.add(12);
		list.add(1.5);
		list.add(false);
		System.out.println(list);
		//isEmpty方法判断当前集合是否为空,如果为空则返回true,不为空
		//返回false
		System.out.println(list.isEmpty());
		//size是用于获取集合长度
		System.out.println(list.size());
	}
}

三、Iterator接口

package day72701;

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

public class IteratorDemo {
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("12");
		list.add(16);
		list.add(true);
		list.add(59.9);
		Iterator it = list.iterator();
		//hasNext方法用于判断后面是否还有数据,如果有返回为true,
		//否则为false
		while(it.hasNext()) {
			//next()方法用于获取游标后面的数据值
			Object o = it.next();
			System.out.println(o);
		}
	}
}

四、Set

package day72701;

import java.util.HashSet;
import java.util.Set;
/*
 * set集合不可保存重复数据,同一对象不能保存,内容相同的对象也不能保存
 * 
 * 不可重复优先想到的是比较,而我们的比较有两个一个是==,一个是equals
 * 但是直接用equals方法比较是费时间的,所以我们有优化,用的是hashCode
 * 
 * hashCode是将属性根据hash算法经过一系列的计算,将其计算成一个int的
 * 整数值,所以两个对象的hashCode的值不同,则表示两个对象不是同一个
 * 对象,且内容不相同,如果两个对象的hashCode值相同,则有可能出现误差
 * 问题,例如属性值不同,但是计算结果相同,所以我们在使用equals方法进行
 * 比较,逐一比较,区分哪些相同,哪些是巧合的计算结果相同
 */

public class HashSetDemo {
	public static void main(String[] args) {
		Set set = new HashSet();
		//Set集合中保存的都是对象
		//Set集合不仅仅是同一个对象不能保存,内容相同的对象也不能
		//保存到set集合中 
		set.add("hello");
		set.add("hello2");
		String s1 = new String("Hello");
		String s2 = new String("Hello2");
		set.add(s1+s2);
		set.add(s1);
		set.add(s2);
		System.out.println(set);
		
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值