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

Java的集合(Collection)

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

Java的集合(Collection)

集合是java中提供的一种容器,可以用来存储多个数据。

集合和数组的区别:

数组的长度是固定的,集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

Collection的常用功能:

    add():把给定的对象添加到当前集合中 。clear():清空集合中所有的元素。remove(E e): 把给定的对象在当前集合中删除。contains(E e): 判断当前集合中是否包含给定的对象。isEmpty(): 判断当前集合是否为空。size(): 返回集合中元素的个数。toArray(): 把集合中的元素,存储到数组中。contains():集合是否包含某个元素。

List:

    ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素。linkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素。Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素。

ArrayList较为常用,现做详细讨论。

java.util.ArrayList 本质是可变数组,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

书写格式:ArrayList list = new ArrayList<>(); 其中E为泛型,可以String, 某个类等类型。

代码示例:

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        Student s = new Student("张三");
        Student s1 = new Student("李四");
        Student s2 = new Student("王五");

        list.add(s);
        list.add(s1);
        list.add(s2);

    }
}

ArrayList的遍历:

1.使用for循环:

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        Student s = new Student("张三");
        Student s1 = new Student("李四");
        Student s2 = new Student("王五");

        list.add(s);
        list.add(s1);
        list.add(s2);


        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}

2.使用Iterator迭代集合中元素:

import java.util.ArrayList;
import java.util.Iterator;

public class Test {

    public static void main(String[] args) {

        ArrayList list = new ArrayList<>();
        String s = "张三";
        String s1 = "李四";
        String s2 = "王五";

        list.add(s);
        list.add(s1);
        list.add(s2);
        

        Iterator it = list.iterator();

        while(it.hasNext()){ 
            String ss = it.next();
            System.out.println(ss);
        }

    }
}

Set:使用较少,它与list的区别:

    list是有序的,set是无序的。list元素可以重复,set不能重复,重复的会覆盖。list可以直接通过索引获取元素,set不能。

Map:

    Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map 中的集合,元素是成对存在(键值对)的,每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection 中的集合称为单列集合, Map 中的集合称为双列集合。Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

常用方法:

    public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。public V get(Object key) 根据指定的键,在Map集合中获取对应的值。public Set keySet() : 获取Map集合中所有的键,存储到Set集合中。public Set> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
import java.util.HashMap;

public class Test {

    public static void main(String[] args) {

        HashMap map = new HashMap<>();

        map.put(1, "汽车");
        map.put(2, "苹果");
        map.put(3, "桃子");
        System.out.println(map); //输出

        System.out.println(map.remove(1));
        System.out.println(map);

        System.out.println(map.get(2));
        System.out.println(map.get(3));

    }
}



Map集合遍历键找值方式:

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

public class Test {

    public static void main(String[] args) {

        HashMap map = new HashMap();
        //添加元素到集合
        map.put("胡歌", "霍建华");
        map.put("郭德纲", "于谦");
        map.put("薛之谦", "大张伟");

        Set keys = map.keySet();
        // 增强for循环,遍历键集 得到 每一个键
        for (String key : keys) {
            //key 就是键
            //获取对应值
            String value = map.get(key);
            System.out.println(key+"的CP是:"+value);
        }
        
    }
}



Map集合遍历键值对方式:

HashMap map = new HashMap();
// 添加元素到集合
map.put("胡歌", "霍建华");
map.put("郭德纲", "于谦");
map.put("薛之谦", "大张伟");
// 获取 所有的 entry对象 entrySet
Set> entrySet = map.entrySet();
// 遍历得到每一个entry对象
for (Entry entry : entrySet) {
// 解析
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"的CP是:"+value);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749432.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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