JAVA集合框架中的接口
1.Collection接口。该接口定义了一个存取一组对象的方法,是最基本的接口
2.Set接口。该接口继承Collection接口,它包含的数据没有顺序且不可以重复
3.List接口。该接口继承Collection接口,它包含的数据有顺序且可以重复
4.Map接口。该接口是一个单独的接口,不继承Collection接口。它是一种把键对象和值对象进行关联的容器,不可以包含重复键
JAVA集合中的实现类
1.HashSet。实现了Set接口,为无序集合,能够快速定位一个元素。需要注意的是,存入HashSet中的对象必须实现HashCode()方法
2.TreeSet。不仅实现了Set接口,还实现了Sorted接口,可对集合进行自然排序(即升序排序)
3.ArrayList。实现了List接口,为有序集合,它的大小可变并且可以像链表一样被访问。它是以数组的方式实现的List接口,允许快速随机存取
4.LinkedList。实现了List接口,为有序集合,通过一个链表的形式实现List接口,提供最佳顺序存取,适合插入和移除元素。有这个类定义的链表也可以像栈或队列一样被使用
5.HashMap。实现一个“键-值”映射的哈希表,通过键获取值对象,没有顺序,通过get(key)方法来获取value的值,允许存储空对象,而且允许键是空的。不过,键只能有一个
Collection接口中的方法
举栗子:
package com.moxiaofeng2;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args) {
//创建集合C
Collection collection =new ArrayList();
//向集合中添加元素
collection.add("Apple");
collection.add("Orange");
collection.add("Banana");
collection.add("Pear");
//创建Array集合
ArrayList arrayList =new ArrayList();
//向集合中添加元素
arrayList.add("Dog");
arrayList.add("Cat");
System.out.println("集合collection中元素个数:" + collection.size());
//如果arraylist集合不为空
if (!arrayList.isEmpty()){
//将集合array里面的元素添加到集合collection中
collection.addAll(arrayList);
}
System.out.println("集合collection中元素个数:" + collection.size());
//返回迭代器
Iterator iterator = collection.iterator();
System.out.println("集合collection中元素:");
//判断迭代器中是否存在下一个元素
while (iterator.hasNext()){
//使用迭代器循环输出集合中的元素
System.out.print(iterator.next() +" ");
}
System.out.println();
//判断集合中是否包含Cat
if (collection.contains("Cat")) {
System.out.println("-------集合collection中包含Cat--------");
}
//从集合collection中删除集合arrayList中的所有元素
collection.removeAll(arrayList);
//返回迭代器对象
iterator = collection.iterator();
System.out.println("集合collection中元素:");
while(iterator.hasNext()){
System.out.print(iterator.next() +" ");
}
System.out.println();
//将集合中的元素存放到字符串数组中
Object[] objects = collection.toArray();
String s ="";
System.out.println("素组中元素:");
for (int i =0; i < objects.length; i++){
//String strings = new String();
//strings = objects[i].toString();
s = (String)objects[i];
//System.out.print(strings + " ");
System.out.print(s +" ");
}
}
}
List接口中的方法
举栗子:
package com.moxiaofeng2;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
//创建初始容量为10的空列表
ArrayList array = new ArrayList();
//添加元素
array.add("cat");
array.add("dog");
array.add("pig");
array.add("sheep");
array.add("pig");
//创建迭代器
Iterator iterator = array.iterator();
System.out.println("array集合中的元素有:");
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
//替换指定索引处的元素
System.out.println("返回替换集合中索引是1的元素:" + array.set(1,"mouse"));
iterator = array.iterator();
System.out.println("元素替换后集合中的元素:");
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
//获取指定索引处集合的元素
System.out.println("获取集合中索引是2的元素:" + array.get(2));
System.out.println("集合中第一次出现pig的索引:" + array.indexOf("pig"));
System.out.println("集合中最后一次出现dog的索引:" + array.lastIndexOf("pig"));
List list = array.subList(1,4);
iterator = list.iterator();
System.out.println("新集合中的元素");
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
}
}
LinkedList类的方法
举栗子:
package com.moxiaofeng2;
import java.util.Iterator;
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
//创建LinkedList集合对象
LinkedList linkedList = new LinkedList();
//添加元素
linkedList.add("cat");
linkedList.add("dog");
linkedList.add("pig");
linkedList.add("sheep");
linkedList.addFirst("mouse");
linkedList.addLast("duck");
//创建迭代器遍历集合元素
Iterator iterator = linkedList.iterator();
System.out.println("linkedList集合中的元素分别有:");
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("获取集合中第一个元素:" + linkedList.getFirst());
System.out.println("获取集合中最后一个元素:" + linkedList.getLast());
System.out.println("删除集合中第一个元素:" + linkedList.removeFirst());
System.out.println("删除集合中最后一个元素:" + linkedList.removeLast());
iterator = linkedList.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
}
}
TreeSet类提供方法
举栗子:
package com.moxiaofeng2;
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
//创建TreeSet集合
TreeSet treeSet = new TreeSet();
//添加元素
treeSet.add("45");
treeSet.add("32");
treeSet.add("55");
treeSet.add("87");
treeSet.add("89");
treeSet.add("34");
treeSet.add("99");
//获取集合中元素个数
System.out.println("集合中元素一共有:" + treeSet.size());
//创建迭代器,遍历集合
Iterator iterator = treeSet.iterator();
System.out.println("treeset中集合元素为:");
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("获取34~89之间的集合:");
//System.out.print(treeSet.subSet("34","89"));
SortedSet sortedSet = treeSet.subSet("34","89");
iterator = sortedSet.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("集合中89之前的元素");
SortedSet sortedSet1 = treeSet.headSet("89");
iterator = sortedSet1.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("获取45之后的数据");
SortedSet sortedSet2 = treeSet.tailSet("45");
iterator = sortedSet2.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("获取集合中第一个元素:" + treeSet.first());
System.out.println("获取集合中最后一个元素:" + treeSet.last());
System.out.println("获取并移除集合中第一个元素:" + treeSet.pollFirst());
System.out.println("获取并移除集合中最后一个元素:" + treeSet.pollLast());
//遍历集合中的元素
iterator = treeSet.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
}
}
Map接口提供方法
举栗子:
package com.moxiaofeng2;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
//创建Map集合
HashMap hashMap = new HashMap();
//添加元素
hashMap.put("1","一代天骄");
hashMap.put("2","成吉思汗");
hashMap.put("3","只识弯弓射大雕");
hashMap.put("4","俱往矣");
hashMap.put("5","数风流人物");
hashMap.put("5","还看今朝");
System.out.println("指定键2获取值:" + hashMap.get("2"));
Set set = hashMap.keySet();
Iterator iterator = set.iterator();
//获取HashMap中值的合并输出
String key = "";
while (iterator.hasNext()){
key = (String)iterator.next();
System.out.println(key + ":" + hashMap.get(key));
}
}
}