java容器

    在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。

    java的容器有很多,但大致可以分为两类。

    1.Collection:一个独立元素的序列,这些元素都服从一条或者多条规则

    2.Map:一组成对的“键值对”对象,允许你使用键来查找值。


    一、Collection

    List是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩展,List集合里的元素是可以重复的。


    List接口的主要实现类有ArrayList,和LinkedList。
    在数据量不大的情况下,这两个类性能差别不大,
    一般情况下,集合里的元素很少变化的,一般用ArrayList,

    假如集合里元素经常变动,要用LinkedList;底层实现有差别的。


    ArrayList:

package com.yhc.dataType;

import java.util.ArrayList;

public class ArrayListTest {

    public static void printList(ArrayList<String> arrayList){
        System.out.println("当前的集合元素:");
        for (String s:arrayList){
            System.out.println(s);
        }
    }

    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<String>();
        //ArrayList添加元素
        arrayList.add("java");
        arrayList.add("c");
        printList(arrayList);
        //在指定位置插入元素
        arrayList.add(1,"c++");
        printList(arrayList);
        //元素的替换
        arrayList.set(0,"javaEE");
        printList(arrayList);
        //移除元素
        arrayList.remove(2);
        printList(arrayList);
    }
}

输出结果:

当前的集合元素:
java
c
当前的集合元素:
java
c++
c
当前的集合元素:
javaEE
c++
c
当前的集合元素:
javaEE

c++


LinkedList

package com.yhc.dataType;

import java.util.LinkedList;

public class LinkedListTest {

    public static void printList(LinkedList<String> linkedList){
        System.out.println("当前的集合:");
        for (String s:linkedList){
            System.out.println(s);
        }
    }

    public static void main(String[] args) {

        LinkedList<String> linkedList = new LinkedList<String>();
        linkedList.add("星期一");
        linkedList.add("星期二");
        linkedList.add("星期三");
        linkedList.add("星期四");
        linkedList.add("星期五");

        // indexof寻找位置
        System.out.println(linkedList.indexOf("星期一"));

        // peek获取第一个元素
        System.out.println(linkedList.peek());
        printList(linkedList);

        // poll摘取第一个元素
        System.out.println(linkedList.poll());
        printList(linkedList);
    }
}

Set集合是Collection接口的子接口,没有对Collection接口进行扩展,里面不允许存在重复的内容

package com.yhc.dataType;

import java.util.HashSet;

public class SetTest {

    public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>();

        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        set.add("1");

        for (String s: set){
            System.out.println(s);
        }
    }
}
Map是存放一对值的最大接口,即接口中的每一个元素都是一对,以key->value键值对的形式保存;

HashMap:

package com.yhc.dataType;

import java.util.HashMap;

public class MapTest {

    public static void main(String[] args) {
        HashMap<String,String> map = new HashMap<String, String>();

        map.put("1号","张三");
        map.put("2号","李四");
        map.put("3号","王五");

        //通过key获取value
        System.out.println(map.get("1号"));

        //遍历map
        for (String key: map.keySet()){
            String name = map.get(key);
            System.out.println("key:" + key + ";value:" + name);
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值