集合框架

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; 


}
 
 
原文地址:https://www.cnblogs.com/chenying99/p/2447902.html