Java-List集合、Set集合、Map集合

List、Set、Map都属于集合类由Java.lang.Object包提供

其中List和Set集合继承了Collection接口拥有Collection接口的方法。

  • add(Element)
  • remove(Object o)
  • isEmpty()
  • iterator()
  • size()

Set集合和List集合的遍历都是使用迭代器迭代的(最好不用循环,可能会出错)


List集合


List集合的实现有两种ArrayList可变数组和LinkedList链表
ArrayList优点是可根据索引位置随机访问。LinkedList是插入删除较快。

import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
    	ArrayList list=new ArrayList<>();
    	list.add('a');
    	list.add('b');
    	for(int i=0;i
LinkedList实际上是一个双向队列,所以可以实现队列。


Set集合

Set集合的实现有HashSet和TreeSet。Set集合就是不允许重复值出现的可变数组。(个人理解)

HashSet是基于哈希表创建的,所以它内部的储存顺序是不固定的。但是它删除添加元素的时候效率更高。

TreeSet是在遍历集合时按照递增的顺序排列的。


import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
    	Scanner scan=new Scanner(System.in);
    	TreeSet set=new TreeSet();
    	int n=scan.nextInt();
    	int input;
    	for(int i=0;i it=set.iterator();
    	System.out.print(it.next());
    	while(it.hasNext())
    	{
    		System.out.print(" "+it.next());
    	}
    	System.out.println();
    }
}


遍历Set集合时要使用迭代器Iterator


Map集合

Map相当于python中的字典。它提供了一个key->value的映射

其中Key的值是唯一的。value的值任意,可以为null。

Map集合的实现通过HashMap和TreeMap。
添加内容 map.put;

Map的迭代需要借用Set集合。先用Set提取Map的KeySet.再用迭代器对KeySet集合迭代
Map.get()得到的是map的value值。

import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
    	Map map=new TreeMap<>();
    	Scanner scan=new Scanner(System.in);
    	int n=scan.nextInt();
    	scan.nextLine();
    	String name;
    	for(int i=0;i set=map.keySet();
    	Iterator it=set.iterator();
    	while(it.hasNext())
    	{
    		String str=it.next();
    		int count=map.get(str);
    		System.out.println(str+" "+count);
    	}
    	
    }
}
如果put两个key相同的值。那么后一个会覆盖前一个。





你可能感兴趣的:(特性及算法)