Fork me on GitHub

java集合及分类

      主要分为Collection和Map,Collection获取保存的对象引用使用的是索引,我们可以把它们看成是类似数组的类,而Map则是以键值对的方式存储对象,每个对象在Map中存储时都会有一个键值与之对应。Collection是集合类的顶级接口,其直接继承的接口有Set和list。而Collections则是集合类的一个工具类/帮助类其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

 

Map:一堆键值对数据,要求每个键值对中的键不能重复

Map类型容器是通过键值对的方式来保存对象的,有时我们也称之为字典,创建一个Map类型的容器可以使用任何一个实现了Map接口的类。

Map  map = new HashMap();

想要向Map中添加数据可以使用put方法,它接受两个参数:键和值。

map.put("key",10);

如果想要获取Map中某个键对应的值可以使用get方法。

map.get("key");

 HashMap
            常用操作
                增加:put()
                删除:remove()    clear()
                修改:put()
                检索:get()
                获取元素键集:keySet()
                获取元素值集:values()
                迭代
                    foreah
                    iterator
                判断键是否存在:containsKey()
                判断值是否存在:containsValue()

List:一堆有序可重复的数据,可以使用下标进行检索

 

 list集合与数组的用途非常类似,都是用来存储大量数据的,不同处有两点:

1、数组长度在使用前必须确定,一旦确定不能改变。而list集合长度可变,无需定义。

2、数组中必须存放同一类型的数据,list集合集合中可以存放不同类型的数据。

 1 public class ListArray{
 2     public static void main(String[] args) {
 3         System.out.println("请输入学员姓名,并以over作为结束");
 4         Scanner scanner = new Scanner(System.in);
 5         ArrayList list = new ArrayList();
 6         do{
 7             String name = scanner.next();
 8             if(name.equalsIgnoreCase("over"))break;
 9             list.add(name);
10         }while(true);
11         System.out.println(list);
12     }
13 }

List集合中存放引用类型可以用强制类型转换获取。

JDK 1.5前

list.add(new Integer(10));

int i = (Integer)list.get(0).intValue();

 

JDK  1.5后 java中提供了自动装箱拆箱功能,使用

list.add(10);

int i = (Ingeter)list.get(0);

    常用操作:

    列表集合
            2.1、ArrayList:基于数组实现的,检索较快,增加和删除较慢,效率高。
            2.2、LinkedList:基于链表实现的,检索较慢,增加和删除很快。
            2.3、Vector:线程安全的集合,效率低。
            2.4、常用操作
                添加:add()
                删除:remove()    clear()
                修改:set()
                检索:get()
                迭代:
                    for(针对下标)
                    foreach
                    iterator
                判断存在:contains()

          将集合转换成一个数组:toArray()

List集合重写了toString方法,可以将集合中的元素依次输出。

 1 import java.util.ArrayList;
 2 import java.util.Collection;
 3 import java.util.Iterator;
 4 import java.util.Scanner;
 5 
 6 public class ListArray {
 7     public static void main(String[] args) {
 8         System.out.println("请输入班级学院姓名,并以over作为结束");
 9         Scanner scanner = new Scanner(System.in);
10         ArrayList list = new ArrayList();
11         do {
12             String name = scanner.next();
13             if (name.equalsIgnoreCase("over"))
14                 break;
15             list.add(name);
16         } while (true);
17         System.out.println(list);
19     }
20 
21 }

List集合常用方法

 1 import java.util.ArrayList;
 4 import java.util.Scanner;
 5 
 6 import javax.swing.text.html.HTMLDocument.Iterator;
 7 
 8 public class Demo {
 9     public static Scanner scanner = new Scanner(System.in);
10 
11     public static void main(String[] args) {
12         ArrayList listA = new ArrayList();
13         ArrayList listB = new ArrayList();
14         System.out.println("请输入a学员的姓名,输入以over结束");
15         inputName(listA);
16         System.out.println("请输入b学员的姓名,输入以over结束");
17         inputName(listB);
18 
19         System.out.println("请输入要查找的学员姓名");
20         String name = scanner.next();
21         int pos = listA.indexOf(name);
22         if (pos == -1) {
23             System.out.println("没有找到");
24         } else {
25             System.out.println("找到了,位置是" + pos);
26         }
27         System.out.println("请输入要删除的学院姓名");
28         String deName = scanner.next();
29         if (listA.remove(deName)) {
30             System.out.println("删除成功");
31         } else {
32             System.out.println("没有该学员");
33         }
34     }
35 
36     public static void inputName(ArrayList list) {
37         do {
38             String name = scanner.next();
39             if (name.equalsIgnoreCase("over"))
40                 break;
41             list.add(name);
42         } while (true);
43     }
44 }

Set集合:一堆无序并不重复的数据

 

 set集合和list集合很多用法是相同的,但是set集合中的元素是无序的,元素也不能重复,set集合中常用类为HashSet

常用操作
                添加:add()
                删除:remove()    clear()
                修改:add()
                迭代:
                    foreach
                    iterator
                判断存在:contains()

                返回集合中元素的数量:size()

list集合可以用for循环获得索引来进行。但是set必须要通过迭代器进行。

 1 import java.util.HashSet;
 2 import java.util.Iterator;
 3 
 4 public class SetIterator {
 5     public static void main(String[] args) {
 6         HashSet set = new HashSet();
 7         set.add("a");
 8         set.add("b");
 9         set.add("c");
10         set.add("d");
11         Iterator iterator = set.iterator();
12         while(iterator.hasNext()){
13             String str = (String) iterator.next();
14             System.out.println(str);
15             
16         }
17     }
18 }

 

posted @ 2015-05-30 16:52  淡无心  阅读(601)  评论(0编辑  收藏  举报