1.java集合框架(Java Colletion Framework):可以理解为用来在内存中存放一组对象的某种容器,就像之前的数组和自定义队列。 2.java中的集合框架是线性的数据结构,但是这些线性的数据结构分为两类:物理线性,逻辑线性。 3.java集合类主要在java.util.*包下,主要有一下几类: 1.List:有序的集合类(某种特定的顺序) 2.Set:是无序并且不重复数据的集合类 3.Map:键值对的集合类 例如:学号--->学生 身份证号---->人 4.Queue 4.List、Set和Map都是接口(Interface),不是具体的类实现。 List lst = new ArrayList(); 这是我们平常经常使用的创建一个新的List的语句,在这里, List是接口,ArrayList才是具体的类。 5.java.util.Set接口的测试类 public class Test { public static void main(String[] args) { java.util.Set<String> set = createSet(); // 打印 printSet(set); boolean b = deleteElement("c", set); System.out.println("删除" + b); printSet(set); set.add("k"); set.add("i"); set.add("f"); set.add("e"); set.add("c"); set.add("b"); set.add("a"); printSet(set); } /** * 实例化Set集合对象 * * @return 返回实例化后初始化的集合对象 */ public static java.util.Set<String> createSet() { // 实例化一个List集合对象 java.util.Set<String> set = new java.util.HashSet<String>(); // 循环集合对象添加10个数据 for (int i = 0; i < 10; i++) { char c = (char) (97 + i); set.add(c + ""); } return set; } /** * 打印Set集合的方法 * * @param Set要被打印的集合对象 */ public static void printSet(java.util.Set<String> set) { // 获取Set集合的迭代器 java.util.Iterator<String> iter = set.iterator(); // 开始遍历Set集合 while (iter.hasNext()) { System.out.println(iter.next()); } } } *注意:第三次打印出来的数据有11个(a,b,c,d,e,f,g,h,i,j,k) 6.List的测试类 public class ListTest { public static void main(String[] args) { java.util.List<String> list = createList(); print(list); } /** * 实例化list集合对象 * * @return 返回实例化后初始化的集合对象 */ public static java.util.List<String> createList() { // 实例化一个List集合对象 java.util.List<String> list = new java.util.ArrayList<String>(); // 循环集合对象添加10个数据 for (int i = 0; i < 10; i++) { char c = (char) (97 + i); list.add(c + ""); } return list; } /** * 打印List集合的方法 * * @param list要被打印的集合对象 */ public static void print(java.util.List<String> list) { // 循环打印 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } 7.Map测试类 public class MapTest { public static void main(String[] args) { java.util.Map<Integer, String> map = createMap(); //打印 printMap(map); //添加数据 System.out.println("添加数据"); map.put(10, "a"); map.put(20, "c"); map.put(30, "d"); map.put(40, "e"); map.put(1, "b"); map.put(0, "a"); map.put(5, "p"); //打印 printMap(map); //删除数据 System.out.println("删除数据"); deleteElement(5,map); //打印 printMap(map); } /** * 实例化Map集合对象 * * @return 返回实例化后初始化的集合对象 */ public static java.util.Map<Integer, String> createMap() { // 实例化一个Map集合对象 java.util.Map<Integer, String> map = new java.util.HashMap<Integer, String>(); // 循环集合对象添加10个数据 for (int i = 0; i < 10; i++) { char c = (char) (97 + i); map.put(i, c + ""); } return map; } /** * 删除一个指定对象值 */ public static String deleteElement(Integer key, java.util.Map<Integer, String> map) { // 开始删除元素 String str = map.remove(key); return str; } /** * 打印Map集合的方法 * * @param Map要被打印的集合对象 */ public static void printMap(java.util.Map<Integer, String> map) { // 得到一个Key的Set集合 java.util.Set<Integer> set = map.keySet(); // 获取Set集合的迭代器 java.util.Iterator<Integer> iter = set.iterator(); // 开始遍历Set集合 while (iter.hasNext()) { // 获取Key值 Integer ie = iter.next(); // 输出 System.out.println("Key值:" + ie + "\t Value值是:" + map.get(ie)); } } } 8.去重和排序 import java.util.Set; import java.util.HashSet; import java.util.TreeSet; public class SetTest { public static void main(String[] args) { int a[]={6,7,4,8,2,6,33,5,7,6,3,3,53,53,13}; Object b[] = new SetTest().quchong(a); for (int i = 0; i < b.length; i++) { System.out.print(b[i]+"\t"); } } public Object [] quchong(int a[]){ Set<Integer> set=new TreeSet<Integer>(); for (int i = 0; i < a.length; i++) { set.add(a[i]); } Object b[] = set.toArray(); return b; } }