博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合框架
阅读量:5828 次
发布时间:2019-06-18

本文共 3621 字,大约阅读时间需要 12 分钟。

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; 
}
 
 

转载地址:http://yuodx.baihongyu.com/

你可能感兴趣的文章
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
FreeMarker-Built-ins for strings
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
我理想中的前端工作流
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
Android状态栏实现沉浸式模式
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
zabbix监控php状态(四)
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件...
查看>>
新开的博客,为自己祝贺一下
查看>>