zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Linux基础知识
    c语言依赖倒转
    ios的认识
    ios数据的基本类型和流程控制
    JavaScript 创建 自定义对象
    《大道至简》读后感
    总结
    字符串转换成整型并求和
    《大道之简》第二章
    SQL Server 2008 数据库自动备份
  • 原文地址:https://www.cnblogs.com/danwuxinbolg/p/4540598.html
Copyright © 2011-2022 走看看