JAVA之集合
2016-07-14 15:50
344 查看
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
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 李四
相关文章推荐
- Ruby中的集合编写指南
- AVG 7.5.1.43 版本 序列号 集合
- SQL Server游标的使用/关闭/释放/优化小结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- C#检查指定对象是否存在于ArrayList集合中的方法
- C#写入对象或集合类型数据到xml文件的方法
- C#中的集合用法分析
- C#集合遍历时删除和增加元素的方法
- C#常见的几种集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍历方法对比
- C#遍历集合与移除元素的方法
- JavaScript Archive Network 集合
- Backbone.js中的集合详解
- jQuery学习7 操作JavaScript对象和集合的函数
- 网页代码常用小技巧总结第1/3页
- Java中对List集合的常用操作详解
- 详解JAVA高质量代码之数组与集合
- 基于Java回顾之集合的总结概述
- 探讨:如何使用委托,匿名方法对集合进行万能排序
- JavaScript中的集合及效率
- C#各种集合操作的性能总结