柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
Java集合(2学时)
一、实验目的与要求
1. 熟练掌握Collection和Iterator接口
2. Set集合
3. LinkedHashSet类
4. TreeSet 类
5. List集合
6. Map集合
二、实验原理
Java集合类是一种特别有用的工具类,可以储存数量不等的对象,并可以实现常用的数据结构,如栈,队列等,除此之外,Java集合还可以用于保存具有映射关系的数组,Java集合就像一种容器,可以吧多个对象(实际上是对像的引用)“丢进”该容器中。
三、预习与准备
1. 熟练掌握Collection和Iterator接口
2. Set集合
3. LinkedHashSet类
4. TreeSet 类
5. List集合
6. Map集合
四、实验内容
1. 熟练掌握Collection和Iterator接口
2. 学会使用Set集合
3. 学会使用LinkedHashSet类
4. 学会使用TreeSet 类
5. 学会使用List集合
6. 学会使用Map集合
五、实验过程
1. 熟练掌握Collection和Iterator接口
package ke03;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
public class CollectionTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection c = new ArrayList();
c.add("孙悟空");
c.add(6);
System.out.println("c集合的元素个数为:"+c.size());
c.remove(6);
System.out.println("c集合元素个数为: "+c.size());
System.out.println("c集合是否包含\"孙悟空\"字符串:"+c.contains("孙悟空"));
c.add("轻量级JavaEE企业号应用实战");
System.out.println("c集合的元素:"+c);
Collection books = new HashSet();
books.add("轻量级JavaEE企业应用实战");
books.add("疯狂Java讲义");
System.out.println("c集合是否完全包含books集合:"+c.containsAll(books));
c.remove(books);
System.out.println("c集合中的元素:"+c);
c.clear();
System.out.println("c集合中的元素:"+c);
books.containsAll(c);
System.out.println("books集合的元素:"+books);
}
}
package ke03;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class IteratorTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection books = new ArrayList();
books.add("轻量级JavaEE企业应用实战");
books.add("疯狂Java讲义");
books.add("孙悟空");
Iterator it = books.iterator();
while(it.hasNext()){
String book = (String)it.next();
System.out.println(book);
if(book.equals("疯狂Java讲义")){
it.remove();
}
book ="测试字符串";
}
System.out.println(books);
}
}
2. 学会使用Set集合
package ke03;
import java.util.HashSet;
class A{
public boolean equals(Object obj){
return true;
}
}
class B{
public int hashCode(){
return 1;
}
}
class C{
public int hashCode(){
return 2;
}
public boolean equals(Object obj){
return true;
}
}
public class HashSetTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet books = new HashSet();
books.add(new A());
books.add(new A());
books.add(new B());
books.add(new B());
books.add(new C());
books.add(new C());
System.out.println(books);
}
}
3. 学会使用LinkedHashSet类
package ke03;
import java.util.LinkedHashSet;
public class LinkedHashSetTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedHashSet books = new LinkedHashSet();
books.add("疯狂java讲义");
books.add("轻量级javaEE企业实战管理");
System.out.println(books);
books.remove("疯狂java讲义");
books.add("疯狂java讲义");
System.out.println(books);
}
}
4. 学会使用TreeSet 类
package ke03;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeSet nums = new TreeSet();
nums.add(5);
nums.add(2);
nums.add(10);
nums.add(-9);
System.out.println(nums);
System.out.println(nums.first());
System.out.println(nums.last());
System.out.println(nums.headSet(4));
System.out.println(nums.tailSet(5));
System.out.println(nums.subSet(-3,4));
}
}
5. List集合
package ke03;
import java.util.*;
public class ListTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
List books = new ArrayList();
books.add(new String("轻量级javaEE企业应用实战"));
books.add(new String("疯狂java讲义"));
books.add(new String("疯狂Android讲义"));
System.out.println(books);
books.add(1,new String("疯狂Ajax讲义"));
for(int i=0;i<books.size();i++){
System.out.println(books.get(i));
}
books.remove(2);
System.out.println(books);
System.out.println(books.indexOf(new String("疯狂Ajax讲义")));
books.set(1,new String("疯狂java讲义"));
System.out.println(books);
System.out.println(books.subList(1, 2));
}
}
6. 学会使用Map集合
package ke03;
import java.util.*;
public class MapTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map map = new HashMap();
map.put("疯狂java讲义", 109);
map.put("疯狂ios讲义", 10);
map.put("疯狂Ajax讲义", 79);
map.put("轻量级javaEE企业应用实战", 99);
System.out.println(map.put("疯狂ios讲义", 99));
System.out.println(map);
System.out.println("是否包含值为 疯狂ios讲义 key:"+map.containsKey("疯狂ios讲义"));
System.out.println("是否包含值为 99 value:"+map.containsValue(99));
}
}
package ke03;
import java.util.WeakHashMap;
public class WeakHashMapTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
WeakHashMap whm = new WeakHashMap();
whm.put(new String("语文"), new String("良好"));
whm.put(new String("数学"), new String("及格"));
whm.put(new String("英文"), new String("一般"));
whm.put("Java", new String("中等"));
System.out.println(whm);
System.gc();
System.runFinalization();
System.out.println(whm);
}
}
六、实验过程
1. 熟练掌握泛型
2. 使用Set集合
3. 使用LinkedHashSet类
4. 使用TreeSet 类
5. 使用List集合
6. 使用Map集合
六、实验总结与体会
通过这次课的学习,初步掌握了java集合的基本用法和一些常用的方法,也发现了自身的一些问题,比如不注重细节,导致程序无法运行,同时也发现要与同学进行交流与合作,及时发现问题并解决问题,也使自己了解到自身的不足,所以在今后的学习中,要更加认真学习,并多与同学和老师交流,这样能够更好的学好Java,同时我们要多敲代码,只有这样,我们才能熟悉代码,做到熟能生巧,才能更好的学好java,敲好java代码。