欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 集合(Map, Set, List)

程序员文章站 2022-05-02 12:26:30
...

java 集合(Map, Set, List)

List(ArrayList,LinkedList)

List接口常用方法:

方法 返回值 功能描述
add(int index, Object obj) void 向集合中的指定索引位置添加对象,集合索引从0开如|
allAll(int index, Collection coll) boolean 向集合的指定索引位置添加指定集合对象
remove(int index) Object 用来移除集合中指定索引位置对象
get(int index) Object 用于获得指定索引位置的对象
indexOf(Object obj) int 该方法返回列表中对象第一次出现的索引位置,如果集合中不包含该元素,则返回-1
lastIndexOf(Object obj) int 该方法返回列表中对象最后一次出现的索引位置,如果集合中不包含该元素,则返回-1
subList(int formIndex, int toIndex) List 获取从索引formIndex到toIndex之间的元素对象
set(int index, E element) Object 用指定元素替换列表中指定位置的元素,返回以前在指定位置的元素
listIterator() ListIterator 用来获得一个包含所有对象的ListIterator列表迭代器
package main;

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

public class CollectionDemo {

    /**
     * @param args
     */
    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(c);
        list.add(d);
        list.add(e);
        Iterator<String> fristIterator = list.iterator(); // 创建集合的迭代器

        System.out.println("Before is :");
        while( fristIterator.hasNext() ){   // 遍历集合中的元素
            System.out.print(fristIterator.next()+" ");
        }

        list.set(1, b);  // 将索引为1的对像修改为对象b
        list.add(2, e);  // 将对像e添加到索引位置为2的位置
        Iterator<String> it = list.iterator();
        System.out.println();
        System.out.println("Modifyed is :");
        while(it.hasNext()) {
            System.out.print(it.next() + " ");
        }

    }

}

// 输出结果:
Before is :
A B C D E 
Modifyed is :
A B E C D E 

indexOf(),lastIndexOf()方法

package main;

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

public class CollectionDemoB {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String a="a",b="b",c="c",apple="apple";
        List<String> list = new LinkedList<String>();
        list.add(a);
        list.add(apple);
        list.add(b);
        list.add(c);
        list.add(a);
        list.add(apple);
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");
        }
        System.out.print("\n");

        System.out.println("first a object at:" + list.indexOf(a));
        System.out.println("laster a object at:" + list.lastIndexOf(a));
        System.out.println("first apple object at:" + list.indexOf(apple));
        System.out.println("laster apple object at:" + list.lastIndexOf(apple));

    }

}

//输出结果:
a apple b c a apple 
first a object at:0
laster a object at:4
first apple object at:1
laster apple object at:5

Set(HashSet, TreeSet)

Set集合由Set接口和Set接口的实现类组成,Set接口继承了Collection接口,因此包含Collection接口的所有方法。

Set接口常用方法:

方法 返回值 功能描述
add(Object obj) boolean 如果此Set集合中尚未存在指定元素,则添加此元素
addAll(Collection coll) boolean 将参数集合中所有元素添加到此Set集合的尾部
remove(Object obj) boolean 将指定的参数对象称除集合
retainAll(Collection c) boolean 只保存Set集合中包含在指定Collection集合中的内容
removeAll() boolean 在Set集合中移除包含在指定Collection中的元素
clear() void 移除此Set集合中的所有元素
iterator() Iterator 返回此Set中的元素迭代器
size() int 返回此Set集合中的所有元素个数
isEmpty() boolean 如果Set为空,则返回true
package main;

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

public class ConnectionDemoSet {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> list = new ArrayList<String>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("two");

        Set<String> set = new HashSet<String>();
        set.addAll(list);
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

    }

}

//输出结果:Set集合并不是安添加顺序保存的,另外Set集合元素不能重复添加。
four
one
two
three

Map(HashMap, TreeMap)

Map接口提供了将键映射到值的对象。一个映射不能包含重复的键,每个键最多只能映射到一个值。
以健-值对的方式存储。
Map接口常用方法:

方法 返回值 功能描述
put(key k, value v) Object 向集合中添加指定的键值对
containsKey(Object key) boolean 如果此集合包含指定的键,返回true
containsValue(Object value) boolean 如果此集合包含指的值,返回true
get(Object key) Object 如果存在指定的键对象,返回该对象的值,否则返回null
keySet() Set 返回该集合中的所有键对象组成的Set集合
values() Collection 返回该集合中所有值对象形成的Collection集合

由于Map集合中的元素是通过key,value进行储存,要获取集合中指定的key值 或 value值,需要先通过相应的方法获取key集合或value集合,再遍历key集合或value集合获取指定值。

package main;

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

public class MapDemoHashMap {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<String, String> map = new HashMap<String, String>();
        map.put("1", "one");
        map.put("2", "two");
        map.put("3", "three");
        for ( int i = 1; i <= 3; i++ ) {
            System.out.println("index:" +i+" "+ map.get(""+i+""));
        }

        System.out.println("has key 3: " +map.containsKey("3"));
        System.out.println("has value three:" + map.containsValue("three"));
        System.out.println("has key 4: " + map.containsKey("4"));
        System.out.println(map.isEmpty());

    }

}