java集合类图
上述所有集合类都实现了Iterator,这是一个用于便利集合中元素的接口,主要包含hashNaxt()、Next()、Remove()三种方法
常见的集合有:
Map和Conllection是所有集合框架的父接口
Collection接口下的子接口包含:set接口和list接口
Map接口下的实现类有:HashMap、TreeMap、Hashtable
Set接口下的实现类:HashSet、TreeSet、LinkedHashSet
List接口下的实现类:ArrayLIst、LinkedList、Stack和Vector
HashMap和Hashtable的区别
HashMap是没有考虑同步的,是线程不安全的,Hashtable使用了syncharonized关键字,是线程安全的
前者允许null作为key,后者不予许null作为key
详解
hashSet是Set的一个子接口,主要特点是:里面不能存放重复元素,而且采用散列的储存方法所有没有顺序,这里的顺序是指:输入和插入的元素顺序不一致
代码实例:HashSet:
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HsahSetDemo { public static void main(String[] args){ Set<String> set = new HashSet<String>(); set.add("a"); set.add("b"); set.add("c"); set.add("b"); set.add("e"); set.add("c"); //使用Itertor遍历集合 Iterator<String> iter = set.iterator(); while (iter.hasNext()) { System.out.print(iter.next() + " "); } System.out.println(); //使用For Each输出集合 for (String e: set) { System.out.print(e + " "); } System.out.println(); //使用toString输出集合 System.out.println(set); } }
代码实例:setTest:
package www.demo.BubbleSort; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.HashSet; import java.util.Iterator; import java.util.Scanner; import java.util.Set; public class setTest { public static void main(String[] args) throws FileNotFoundException{ Set<String> works = new HashSet<String>(); //通过输入流打开文献 //方法一:这个方法不需要抛出异常 InputStream inputStream = setTest.class.getResourceAsStream("Alice.txt"); //需要抛出异常 InputStream inStream = new FileInputStream("F:\workspace\Alice.txt"); Scanner in = new Scanner(inStream); while (in.hasNext()) { works.add(""); } Iterator<String> iter = works.iterator(); for (int i = 0; i < 5; i++) { if(iter.hasNext()){ System.out.println(iter.next()); } System.out.println(works.size()); } } }
ArrayList
ArrayList是list的一个子类,他和hashSet相反,允许元素重复,所以元素都是有序的,元素被访问的顺序取决于集合的类型,如果对ArrayList访问,迭代器将从索引0开始,每迭代一次,索引值加1
代码实例:ArrayListDemo:
package www.demo.arraylist; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * 允许重复 * @author Administrator */ public class ArrayListDemo { public static void main(String[] args) { List<String> arrayList = new ArrayList<String>(); arrayList.add("a"); arrayList.add("a"); arrayList.add("bb"); arrayList.add("bb"); arrayList.add("c"); arrayList.add("c"); arrayList.add("r"); // 使用iterator输出 Iterator<String> iter = arrayList.iterator(); while (iter.hasNext()) { System.out.print(iter.next() + " "); } System.out.println(); // 使用for each输出 for (String ite : arrayList) { System.out.print(ite + " "); } System.out.println(); // 使用toString输出 System.out.println(arrayList); } }
以上代码均已测试