一:集合框架
/*
集合框架: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!");
}
}
哎,貌似遇到瓶颈了!有点坚持不下去了!