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 李四