java容器代码_JAVA 容器

直接看一张图,理解图中的结构其实容器大概就可以理解了

9ac06e7328557859d955a75ce07bc3bb.png

这里就将三个常见的容器接口类:Set List Map

重点:多态的实现,父类的指针指向子类的对象

Set

Set是Collection的子接口,实现Set接口的容器类的特点:无序,不重复

实现Set接口的类有:HashSet类

代码如下:

package com.zpchcbd.comtainer;

import java.util.HashSet;

import java.util.Set;

public class MyHashSet {

public static void main(String[] args){

Set s1 = new HashSet();s1.add("1");s1.add("2");s1.add("3");s1.add("a");

Set s2 = new HashSet();s2.add("a");s2.add("b");s2.add("c");

s1.retainAll(s2); //取交集

System.out.println(s1);

Set s3 = new HashSet(s2); //构造方法可以进行将其他容器的元素放进来

System.out.println(s3);

}

}

结果如图:

e03807e70bd5f6f04fb0bf724d18a1e2.png

List

List是Collection的子接口,实现List接口的容器类的特点:有序,可重复

实现Set接口的类有:ArrayList LinkedList类

package com.zpchcbd.comtainer;

import java.util.Collections;

import java.util.LinkedList;

import java.util.List;

public class MyLinkedList {

public static void main(String[] args) {

List l1 = new LinkedList<>();

for(int i=0;i<5;i++){

l1.add("a" + i);

}

System.out.println(l1);

Collections.reverse(l1);

System.out.println(l1);

Collections.shuffle(l1);

System.out.println(l1);

Collections.sort(l1);

System.out.println(l1);

}

}

e754e28e95d8acc4d604497023decba4.png

Map

Map是Collection的子接口,实现Map接口的容器类的特点:键值对存储,存储键值对的时候,主键不能重复,若重复后面键的值替换前面的键的值

实现Set接口的类有:HashMap TreeMap类

package com.zpchcbd.comtainer;

import java.util.HashMap;

import java.util.Map;

public class MyHashMap {

public static void main(String[] args){

Map m = new HashMap<>();

m.put("aaa","111");

m.put("bbb", new Integer(222));

m.put("ccc","333");

int i = (Integer) m.get("bbb");

System.out.println(i);

System.out.println(m);

}

}

dd0da60e50001b280f039b3c2a7cfbae.png

Iterator迭代器

在Collection接口中有个需要被实现的方法是Iterator iterator();,该方法会返回一个iterator迭代器,通过这个迭代器可以实现遍历当前容器中的所有元素

1、需要注意的就是在遍历迭代器的过程中,无法通过容器的方法remove来进行移除指定元素

public class MyIterator2 {

public static void main(String[] args) {

Collection cHashSet = new HashSet();

cHashSet.add(new Name("1111","aaaa"));

cHashSet.add(new Name("2222","bbbb"));

cHashSet.add(new Name("33","cc"));

Iterator iterator;

for(iterator = cHashSet.iterator();iterator.hasNext();){

Name name = (Name)iterator.next();

if(name.getFirstname().length() < 3){

iterator.remove();

}

}

System.out.println(cHashSet);

}

}

0b99f8a6bcebb1e286968ad56150c3f3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值