java大集合

Java_集合框架

2017-09-08  本文已影响5人  Miss_差不多

集合框架概念

Collection接口

*定义了存取一组对象的方法,其子接口Set和 List分别定义了存储方法.
*Set中的数据对象没有顺序且不可以重复.
*List中的数据对象有顺序且可以重复.

1.PNG

在上图中 Collection是一个超级接口 Set和List继承与它.Set和list也是接口.
hashSet是Set的实现类,ArrayList和LinkedList是List的实现类.

LIst

ArrayList的一些方法

ArrayList list =  new ArrayList();
        list.add("one");
        list.add("two");
        list.add("thre");
        System.out.println(list);
        //删除元素
        list.remove(1);//根据下标
        list.remove("thre");//根据元素
        System.out.println(list);
        //跟新
        list.set(0,"跟新元素");
        System.out.println(list);
        //查找元素
        Object obj =list.get(0);
        System.out.println(obj);
        
        //是否包含某元素
        boolean isContain = list.contains("跟新元素");
        System.out.println(isContain);
        //元素个数
        int size = list.size();
        System.out.println(size);

Lindedlist的一些方法

LinkedList list = new LinkedList();
        
        list.add("one");
        list.add("two");
        list.add("thre");
        System.out.println(list);
        //删除元素
        list.remove(1);//根据下标
        list.remove("thre");//根据元素
        System.out.println(list);
        //跟新
        list.set(0, "跟新元素");
        System.out.println(list);
        //查找元素
        Object obj =list.get(0);
        System.out.println(obj);
        
        //是否包含某元素
        boolean isContain = list.contains("跟新元素");
        System.out.println(isContain);
        //元素个数
        int size = list.size();
        System.out.println(size);

这些都是list的两个实现类,上面的方法都是一些常用的方法要熟练应用.

Set

HashSet一些方法

HashSet set = new HashSet();
        set.add("1");//添加元素
        set.add("2");
        set.add("1");
        System.out.println(set);
        //遍历set
        for (Object object : set) {
            System.out.println(object);
        }
        //是否包含元素
        boolean iscon = set.contains("1");
        System.out.println(iscon);
        
        //删除元素
        set.remove("1");

TreeSet

public static void main(String[] args) {
        TreeSet set = new TreeSet();
//      set.add("2");
//      set.add("1");
//      set.add("4");
//      set.add("6");
//      set.add("8");
        Person1 p = new Person1();
        p.name = "nana";
        p.age = 11;
        Person1 p1 = new Person1();
        p1.name = "momo";
        p1.age = 10;
        Person1 p2 = new Person1();
        p2.name = "lala";
        p2.age = 8;
        set.add(p);
        set.add(p1);
        set.add(p2);
        System.out.println(set);
    }
}
class Person1 implements Comparable{
    String name;
    int age;
@Override  // 自定义相等的规则
    public boolean equals(Object obj) {
    // 如果类型不相等,返回false
    if (!(obj instanceof Person)) {
            return false;
        }
    // 如果名字相同, 返回true
    if (((Person)obj).name.equals(this.name)) {
        return true;
    }
        // 如果名字不相同,返回false
    return false;
    }
    
    // hashCode
    @Override    // 计算一个对象的hash值
    public int hashCode() {
        return this.name.hashCode();
    }
    @Override
    public int compareTo(Object o) {
        if (!(o instanceof Person1)) {
            Person1 p = (Person1)o;
            if (this.age >p.age) {
                return 1;
                }else if(this.age == p.age){
                return 0;
            }else {
                return -1;
            }
        }
        return 0;
    }
    @Override  //自定义输出
    public String toString() {
        return "name:"+this.name+" age:"+age;
    }

Map接口

HashMap map = new HashMap();
    //保存数据
    map.put("键", "值");
    map.put("键1", "值1");
    map.put("键2", "值2");
    //读取数据
    Object obj = map.get("键");
    System.out.println(obj);
    
    //遍历
    for (Object item : map.keySet()) {
        System.out.println(map.get(item));
    }
    //跟新
    map.put("键", "跟新的值");
    System.out.println(map);
    //删除
    map.remove("键");
    System.out.println(map);
    //包含
    map.containsKey("键1");
    //map.containsValue("值1");
    //System.out.println(map);
    //清空
    map.clear();
    //System.out.println(map);

TreeMap

public static void main(String[] args) {
        Stu stu = new Stu();
        stu.age = 12;
        stu.name = "杨少锋";
        
        Stu stu1 = new Stu();
        stu1.age = 17;
        stu1.name = "阿墩";
        
        Stu stu2 = new Stu();
        stu2.age = 11;
        stu2.name = "eerdun";
        
        Stu stu3 = new Stu();
        stu3.age = 11;
        stu3.name = "张三";
    
        TreeMap map = new TreeMap();
        map.put("12", stu);
        map.put("2", stu1);
        map.put("15", stu2);
        map.put("3", stu3);
        System.out.println(map);
    }
}


class Stu  implements Comparable{
    @Override
    public String toString() {
        return "Stu [age=" + age + ", name=" + name + "]";
    }
    int age;
    String name;
    @Override
    public int compareTo(Object o) {
        Stu stu = (Stu)o;
        if (this.age > stu.age) {
            return 1;
        } else if (this.age == stu.age) {
            
            // 年龄一样我们可以按照名字进行排序
            return 0;
        } else {
            return -1;
        }
    }
}



上一篇 下一篇

猜你喜欢

热点阅读