Java集合类学习(一)

1. List接口的常用方法

  List接口继承了Collection接口,因此包含Collection中的所有方法。又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法。

 1.1. 示例代码1

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class CollectionDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String a="A",b="B",c="C",d="D",e="E";            //定义要插入集合的字符串对象
        List<String> list=new LinkedList<String>();    //创建List集合
        list.add(a);        //向集合中添加元素
        list.add(b);
        list.add(d);
        Iterator<String> firstIterator=list.iterator();    //创建集合的迭代器
        System.out.println("*******修改前集合中的元素是:********");    //输出信息
        while(firstIterator.hasNext()) {                //遍历集合中的元素
            System.out.print(firstIterator.next()+"\t");
        }
        list.set(1, c);        //将索引位置为1的对象修改为对象c
        list.add(2,e);        //将对象e添加到索引位置为2的位置
        Iterator<String> it=list.iterator();            //创建将集合对象修改之后的迭代器对象
        System.out.println();
        System.out.println("********修改后集合中的元素是:********");
        while(it.hasNext()) {    //循环获取集合中的元素
            System.out.print(it.next()+"\t");
        }

        System.out.println("\n");
        System.out.println("********List集合的其他常用方法:********");
        List<String> list2=new ArrayList<String>();    //创建List集合对象
        list2.add(a);            //对象a的索引位置为0
        list2.add(e);            //对象e的索引位置为1
        list2.add(b);            //对象b的索引位置为2
        list2.add(e);            //对象e的索引位置为3
        list2.add(c);            //对象c的索引位置为4
        list2.add(e);            //对象e的索引位置为5
        list2.add(d);            //对象d的索引位置为6
        System.out.println(list2);    //输出列表中的全部元素
        System.out.println("e第一次出现的索引位置是:"+list2.indexOf(e));
        System.out.println("e最后一次出现的索引位置是:"+list2.lastIndexOf(e));
        System.out.println("c第一次出现的索引位置是:"+list2.indexOf(c));
        System.out.println("c最后一次出现的索引位置是:"+list2.lastIndexOf(c));
    }

}

执行其结果显示如下:

*******修改前集合中的元素是:********
A    B    D
********修改后集合中的元素是:********
A    C    E    D    

********List集合的其他常用方法:********
[A, E, B, E, C, E, D]
e第一次出现的索引位置是:1
e最后一次出现的索引位置是:5
c第一次出现的索引位置是:4
c最后一次出现的索引位置是:4

2. Set接口的常用方法
  Set集合由Set接口和Set接口的实现类组成。利用addAll()方法去除重复值。示例代码如下:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class CollectionDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> list=new ArrayList<String>();        //创建List集合
        list.add("orange");                                //向集合中添加对象
        list.add("apple");
        list.add("pear");
        list.add("banana");
        list.add("apple");
        list.add("pear");
        Set<String> set=new HashSet<String>();            //创建List集合对象
        set.addAll(list);                                //将List集合添加到Set集合中
        Iterator<String> it=set.iterator();                //创建Set集合迭代器
        System.out.println("********集合中的元素是:********");
        while(it.hasNext()) {
            System.out.print(it.next()+"\t");
        }
    }

}

执行结果显示如下:

********集合中的元素是:********
orange    banana    apple    pear    

3. Map接口的常用方法
  Map接口提供了将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

import java.util.HashMap;
import java.util.Map;

public class MapDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<String,String> map=new HashMap<String,String>();        //创建Map集合
        map.put("1", "pear");                    //向集合中添加对象
        map.put("2", "orange");
        map.put("3", "banana");
        for(int i=0;i<=3;i++) {
            System.out.println("第"+i+"元素是:"+map.get(""+i+""));    //输出对应位置的元素值
        }
    }

}

执行其结果显示如下:

第0元素是:null
第1元素是:pear
第2元素是:orange
第3元素是:banana
时间: 2024-10-11 06:55:19

Java集合类学习(一)的相关文章

Java 集合类学习之Vector

package com.fish.list; import java.util.Enumeration; import java.util.Vector; /* 集合 的体系: ------------| Collection 单例集合的根接口 ----------------| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复.  -------------------| ArrayList  ArrayList 底层是维护了一个Object数组实现的. 特点:查询速度快

Java 集合类学习之HashSet

package com.fish.set; import java.util.HashSet; import java.util.Set; /* 集合 的体系: ------------| Collection 单例集合的根接口 ----------------| List  如果是实现了List接口的集合类,具备的特点: 有序,可重复.  -------------------| ArrayList  ArrayList 底层是维护了一个Object数组实现的. 特点: 查询速度快,增删慢.

Java 集合类学习之ArrayList

1.ArrayList的常用方法和原理 package com.fish.list; import java.util.ArrayList; /* 集合的体系: ----------| Collection 单列集合的根接口 ----------------| List 如果实现了List接口的集合类,具备的特点:有序,可重复. --------------------| ArrayList  ArrayList底层是维护了一个Object数组实现的,特点:查询速度快,增删慢. 什么时候使用Ar

Java 集合类学习之LinkedList

1.linkedList的方法和原理 package com.fish.list; import java.util.Iterator; import java.util.LinkedList; /* 集合的体系: ----------| Collection  单列集合的根接口 ----------------| List 如果实现了List接口的集合类,具备的特点: 有序,可重复. --------------------| ArrayList   ArrayList 底层是维护了一个Obj

Java 集合类学习之Map

package com.fish.map; import java.util.HashMap; import java.util.Map; /* 在现实生活中有些数据是以映射关系存在的,也就是成对存在的,比如:  民政局 : 键         值 老公        老婆 ***      人 一把要锁     锁 双列集合: -------------| Map  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复. ----------

Java 集合类学习之HashMap

package com.fish.map; import java.util.HashMap; /* 双列集合: -------------| Map  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复. ----------------| HashMap  底层也是基于哈希表实现 的. HashMap的存储原理: 往HashMap添加元素的时候,首先会调用键的hashCode方法得到元素 的哈希码值,然后经过运算就可以算出该 元素在哈希表

Java集合类学习总结

Java的集合类分为两个类型,Collection和Map,Collection又分为Set和List. 1. 集合类中元素是否相同 HashSet使用equals和HashCode两个函数共同决定 TreeSet使用comparable接口中的compareTo,或者comparator中的compare函数 ArrayList使用equals函数 HashMap中的key和HashSet相同,value使用equals函数 TreeMap中的key和TreeSet相同,value使用equa

Java集合类学习笔记(Set集合)

Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入. HashSet类的特点: 不能保证元素的排列顺序,顺序可能与添加顺序不同,也有可能发生变化. HashSet不是同步的,如果多个线程同时访问并修改一个HashSet时,必须保证其同步. 元素值可以是null. LinkedHashSet类的特点: 是HashSet类的子类,它根据元素的hashCode值来决定元素的存储位置,但同时使用链表维护元素的次

Java集合类学习记录

被标记为transient的属性在对象被序列化的时候不会被保存int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = Arrays.copyOf(arr1, new_length);//Arrays是数组的工具类//ArrayList的转化为静态数组的toArray方法就是这个原理//ArrayList的扩容原理也是Arrays.copyOf()方法//新建了一个数组定义一个数组int[] a={3,1,4,2,5}; int[] b=a; 数组b只是对数组a的又一

Java集合类学习笔记

前言:下载Java的API,需要使用接口时,可在API中进行查询. 1.collection接口:可理解为一个动态的对象数组,不同的是集合中对象的内容可以任意扩充. 特点:性能高:易扩展和修改. 常用子类接口:List.Set.Queue. 2.List接口有ArrayList.vector子类,两者的使用方法相同,不同的是ArrayList是异步处理方式,性能高,但是非线程安全:vector同步处理方式,性能低,但是线程安全.在不要求线程安全的时候采用ArrayList子类. 使用实例: pa