7.24_java学习_集合框架

一:集合框架

/*
集合框架:1,2出现
为什么会出现这么多的容器呢?
因为每一个容器对数据的存储方式都不同。
这个存储方式称之为:数据结构
Collection
	|--List:元素是有序的、元素可以重复、因为该集合体系有索引  
		|--ArrayList:底层的数据结构使用的是数组
		|--LinkedList:使用的是链表数据结构
		|--Vector:底层是数据结构:被ArrayList代替了
	|--Set:元素师无序的,元素不可以重复。
List:特有的方法,凡是可以操作角标的方法都是该体系特有的方法

枚举和迭代的是一样的!

什么是迭代器?
其实就是集合的取出的方法

List集合特有的迭代器,ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException异常

所以在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作、
如果想要其他的操作如添加,修改等。就需要使用其子接口,ListIterator
*/
import java.util.*;
class Collection1
{
	public static void main(String[] args) 
	{
		//创建一个集合容器,使用collection接口的子类,ArrayList
		ArrayList a = new ArrayList();
		//1,添加元素
		a.add("java");//add(Object obj)
		//集合中存储的都是引用或者是地址.

		//2,获取个数,集合长度
		sop(a);
		sop(a.size());
		//3,删除元素
		a.remove("java");
		a.clear();//清空集合
		//4,判断元素
		a.contains("java");
		a.isEmpty();
		//取交集
		a.retainAll(a);

		a.add("java1");
		a.add("java2");
		a.add("java3");
		a.add("java4");
		Iterator it = a.iterator();
		while(it.hasNext())
		{
			sop(it.next());
		}
	}
	public static void sop(Object o)
	{
		System.out.println(o);
	}
}

二:hashset特点

/*
set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
	|--HashSet:底层数据结构是哈希表
			HashSet是如何保证元素唯一性呢?通过HashCode和equals
			如果元素的HashCode值相同,才会判断equals

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

往hashSet集合中存入自定义对象。
姓名和年龄相同为同一个人,重复元素、


*/
import java.util.*;
class Person
{
	private String name;
	private int age;

	Person(String name, int age)
	{
		this.name = name;
		this.age = age;
	}
	public String toString()
	{
		return this.name+"......"+this.age;
	}
}
class Hashset 
{
	public static void main(String[] args) 
	{
		HashSet he = new HashSet();

		ha.add(new Person("a1",11));
		ha.add(new Person("a2",12));
		ha.add(new Person("a4",14));
		ha.add(new Person("a3",13));

		Iterator it = he.iterator();
		while(it.hasNext())
		{
			Person p =(Person)it.next();
			System.out.print(s);
		}
		System.out.println("Hello World!");
	}
}


哎,貌似遇到瓶颈了!有点坚持不下去了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值