栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

set和map

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

set和map

#map与set
先看map

import java.util.Collection;
import java.util.HashMap;
import java.util.Set;

public class Map {
    public static void main(String[] args){
         HashMapmap=new HashMap();   //这里用的的map里的HashMap,定义了一个新对象
         map.put("book","3");     //put方法新增元素
         System.out.println(map); 
         map.put("book1","2");
         System.out.println(map);
         System.out.println(map.containsKey("book2"));   //使用containsKey判断键是是否有book2这个元素
         System.out.println(map.containsValue("d123"));   //这里是判断在值上是否有d123这个值
         System.out.println(map.isEmpty());       //判断这个对象是否为空
         System.out.println(map.size());          //输出这个对象的元素个数
         Set set=map.keySet();        //输出这个对象的键的集合
         for(String s :set)          //使用加强for循环遍历
         {
              System.out.println(s);
         }
         Collection value=map.values();  //输出这个对象值的集合
                 for(String y:value)
                 {
                      System.out.println(y);
                 }

    }
}

输出结果为:

{book=3}
{book1=2, book=3}
false
false
false
2
book1
book
2
3

##Map

  1. 使用了put,contains之类的方法来实现具体操作。
  2. Map集合的一个元素由两个数据组成,即键和值,在定义键和值时要注意定义的是基本数据类型的封装类,也就是说键和值都是对象,而不是一个数据类型。
  3. Map有HashMap,TreeMap等子类,HashMap会对元素进行查重,如果键重复那么后面添加的值会覆盖原来的值,而TreeMap则是对有自然排序的键进行排序。
  4. HashMap的底层是一个数组,我们存放实际是存放在数组中。
    ###再看Set
  import java.util.*;
import java.util.HashSet;
import java.util.TreeSet;
class Student  {          //这里定义了一个类储存元素
    private int age;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge(){
        return  age;
    }
    public int setAge(int age){
        return age;
    }
    Student(){}
    Student(int age,String name){
        this.age=age;
        this.name=name;
    }
}
public class set {
    public static void main(String[] ages){
        HashSet set=new HashSet();    //将Student类作为元素new一个新对象
        set.add(new Student(4,"王奕钦"));            //为set对象中新增元素
        set.add(new Student(3,"林清玄"));
        set.add(new Student(5,"林黛玉"));
        set.add(new Student(5,"王奕钦"));
        for(Student student:set)     //然后用加强for循环
           System.out.println("姓名是: "+student.getName()+" 年龄是"+student.getAge());
        HashSet set0=new HashSet();    //HashSet来new一个String的新对象
        set0.add("1");        //新增元素
        set0.add("2");
        set0.add("4");
        set0.add("1");
        set0.contains("9");       //contains方法判断是否有相同元素
        for(String s:set0)
            System.out.println(s);
        TreeSet set1=new TreeSet();     //用TreeSet创建一个新对象
        set1.add(4);
        set1.add(6);
        set1.add(2);
        set1.add(1);
        for(Integer E:set1)
            System.out.println(E);
    }
}

结果是

姓名是: 林清玄 年龄是3
姓名是: 林黛玉 年龄是5
姓名是: 王奕钦 年龄是5
姓名是: 王奕钦 年龄是4
1
2
4
1
2
4
6  

##set:
.只有每个元素只有一个数据,但是可以创建用创建类的方法来包含多个元素,但是再用HashSet的话,就不能进行查重了,因为String类中本来就包含equals和hashCode方法,需要在Student类中重写这两个方法才可以查重。
.set的话可以用add,clear等方法来进行基本的数据增删改。
.Set中也有HashSet和TreeSet等子类,用来具体实现,可以进行查重,排序等操作。
##最后
还涉及到了加强for循环,它的形式是

 for(String s:set0)    //String是封装类,s代表set0里面的的每一个元素,set0则表示具体的对象  

加强for循环只适用于对象底层是迭代器的情况,不然无法使用。
不过加强for循环操作更为简单,也更为方便,能使用它的话会更便于我们操作。
t0) //String是封装类,s代表set0里面的的每一个元素,set0则表示具体的对象

加强for循环只适用于对象底层是迭代器的情况,不然无法使用。  
不过加强for循环操作更为简单,也更为方便,能使用它的话会更便于我们操作。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号