List ,set ,map的使用方法和区别
java容器类类库的用途是保存对象,并将其分为两个概念:
Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素 ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同)
Map;一组成对的“键值对”对象,键是唯一的 值可以不唯一
List:有序的序列,可重复的
//下面定义一个list的例题:
class ArrayListTest<E>{ public static void main(String[] args){ //将其定义为泛型 ArrayList<String> list = new ArrayList<String>(); list.add("元素"); list.add("元素1"); list.add(1, "34"); //检查是否存在的字符 boolean b = list.contains("元素"); System.out.println(b); //遍历 Iterator iter = list.iterator(); while(!iter.hasNext()){ String str = iter.next(); System.out.println(str); } } }
/* 结果:true 元素 34 元素1 */
set:有序的,不可以重复的,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2
第二个会覆盖第一个存在的
class HashSetTest<>{ public static void main (String[] args){ int[] arr = {12,323,45,5,21,3,65,65,43}; HashSet<Integer> set = new HashSet<Integer>(); for(int i =0;i<arr[i];i++ ){ set.add(arr[i]); System.out.println(arr[i]); } } }
/* 结果:12 323 45 5 21 */
Map 是一对键值: k v
k是唯一的,v可以有多个
import java.util.HashMap; import java.util.Set; public class HashMaptest { public static void main(String[] args) { HashMap<Integer,String> map= new HashMap<Integer,String>(); map.put(1,"1111"); map.put(2,"2222"); //从map中得到k的set集合 Set<Integer> keyset =map.keySet(); //遍历set for(Integer k:keyset){ String str = map.get(k); System.out.println(k +" " + str); } } }
运行结果 1 1111 2 2222