您的位置:首页 > 编程语言 > Java开发

对于Java中Set、List、Map的一些总结

2017-09-18 20:42 411 查看
一、联系与区别

1.Set、list、map都是接口,不能实例化。其中set、list都是继承于Collection和Iterable,而Map则不是继承与这两个接口。

2.set是无序的数据结构,其中的值不允许重复;list是有序的数据结构,所以其中的值允许重复;map中的key-value进行存储的,其key值是唯一的。

3. 需要关注的点:在使用这些数据结构的时候我们尽可能的使用泛型,这样方便之后的遍历与使用。

二、对于三种数据结构的遍历

1. Set的遍历方式

public  static void testSet() {
Set<String> set = new HashSet<>();
set.add("xiaohua");
set.add("xiaoming");
set.add("xiaoqiang");
set.add("xiaohua");
for(String value : set){
System.out.println(value );
}

Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
String next = iterator.next();
System.out.println(next);
}
}


list的遍历

List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);

for(Integer value : list){
System.out.println(value);
}

System.out.println("通过Iterator遍历list:");
Iterator iterator = list.iterator();
while (iterator.hasNext()){
Integer element = (Integer) iterator.next();
System.out.println(element);
}


Map的4中遍历方式

Map<String,String> map = new HashMap<>();
map.put("1","11");
map.put("2","22");
map.put("3","33");
/*  if(map.containsKey("1")){
System.out.println("有key为1的");
}*/

System.out.println("**************使用keyset遍历*************");
for(String key : map.keySet()){
System.out.println("key = " + key + "value = " + map.get(key));
}

System.out.println("**************获取value的集合来遍历value值***************");
for(String value : map.values()){
System.out.println(value);
}

System.out.println("****************使用iterator遍历map*****************");
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String,String> entry =  iterator.next();
System.out.println("key = " + entry.getKey() + "value = " + entry.getValue());
}

System.out.println("*******************效率最高的方式:Entry遍历map**********************");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + "value = " + entry.getValue());

}


三、对于二维数组的几种赋值

System.out.println("***************二维数组的静态赋值1**************");
int [][] array = {{1,2},{2,3},{3,4}};
for(int i = 0 ; i < array.length ; i++){
for(int j = 0 ;j < array[i].length ; j++){
System.out.print(array[i][j] );
}
System.out.println();
}

System.out.println("***************二维数组的静态赋值2**************");
int [][] array2 = new int[2][3];
for (int i = 0 ; i < array2.length; i++){
for(int j = 0 ; j < array2[i].length ; j++){
array2[i][j] = i * j ;
System.out.println("arry2[" + i + "][" + j + "] =" + array2[i][j]);
}
}

System.out.println("*********二维数组的动态赋值***************");
int[][] arr3 = new int[2][];
for(int i = 0; i<arr3.length; ++i){
arr3[i]=new int[i+1];
for(int j=0; j<arr3[i].length; ++j)
arr3[i][j]= i+j;
}
for(int i=0; i<arr3.length; ++i)
for(int j=0; j<arr3[i].length; ++j)
System.out.println(arr3[i][j]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 遍历