JAVA之集合

java中涉及的集合有LIST MAP SET

List

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

public class test {
	public static void main(String[] args){
		String a = "A",b = "B",c = "C",d= "D",e = "E";
		List<String> list = new LinkedList<String>();
		list.add(a);
		list.add(e);
		list.add(d);
		
		Iterator<String> iterator = list.iterator();
		System.out.println("修改前集合:");
		while(iterator.hasNext()){
			System.out.print(iterator.next() + " ");
		}
		System.out.println();
		
		list.set(1, b);
		list.add(2,c);
		Iterator<String> it = list.iterator();
		System.out.println("修改之后的集合:");
		while(it.hasNext()){
			System.out.print(it.next() + " ");
		}
		System.out.println();
		
	}
}//set和add的区别:add是在索引位置添加元素,后面的元素向后移;set是将索引位置的元素修改

Set

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

public class test {
	public static void main(String[] args){

		Set<Object> set = new HashSet<>();
		set.add(2);
		set.add(3);
		set.add(19);
		set.add(5);
		set.add(9);
		set.add(15);
		set.add(11);
		set.add(18);
		set.add(1);
	
		for(Object i : set){
			System.out.println(i + "插入的桶为 " + i.hashCode() % 16);
		}
		System.out.println(set);
	}
}
//注意到这里的输出顺序好像是固定的,不管输入顺序如何。
//如果想按照输入顺序迭代,使用LinkedHashSet
//HashSet的内部原理是用了一张哈希表,纵向为数组(JAVA里称为 桶),
/*每个数组储存一个横向的链表(桶里的若干数据项),
根据插入的元素的哈希值与桶数取余数(Object.hashCode() % 桶数)
,确定元素在哈希表中的储存位置,如果余数相同,称为哈希冲突,
元素储存在相同下标的数组(相同的桶)的链表中。*/

Map

public class test {
	public static void main(String[] args){
		Map<String,String> map = new HashMap<>();
		map.put("1", "apple");
		map.put("2", "orange");
		map.put("3","pear");
		map.put("1", "vv");
		
		for(int i=1;i<=3;i++){
			System.out.println(i + map.get(i+""));
		}
	}
}
一个key只能映射到一个value,如果有重复,则会覆盖
1vv
2orange
3pear

public class test {
	public static void main(String[] args){
		Map<String,String> map = new HashMap<>();
		map.put("1", "apple");
		map.put("2", "orange");
		map.put("3","pear");
		
		Set<String> set = map.keySet();
		System.out.println(set);
		
		Collection<String> col = map.values();
		System.out.println(col);

boolean b = map.containsKey("3");
		System.out.println(b);
		
		for(int i=1;i<=3;i++){
			System.out.println(i + map.get(i+""));
		}
	}
}
[3, 2, 1]
[pear, orange, apple]
true
1apple
2orange
3pear

public class test {
	public static void main(String[] args){
		Map map = new HashMap();
		map.put("001", "张三");
		map.put("005", "李四");
		map.put("004", "王五");
		
		Set set = map.keySet();
		Iterator it = set.iterator();
		while(it.hasNext()){
			String str = (String)it.next();
			String name = (String)map.get(str);
			System.out.println(str + " " + name);
		}
		
	    TreeMap treemap = new TreeMap();
	    treemap.putAll(map);
	    Iterator iter = treemap.keySet().iterator();
	    while(iter.hasNext()){
	    	String str = (String)iter.next();
	    	String name = (String)map.get(str);//treemap都可以,映射
	    	System.out.println(str + " " + name);
	    }
	}
}

004 王五
005 李四
001 张三
001 张三
004 王五
005 李四


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值