set集合
set集合的特点:
1.无序性(存储和读取的顺序可能不一样)
2.不允许重复(重复的会自动去掉).
3.没有索引
遍历的方法:
1.转为字符串打印
2.迭代器
3.增强for
代码实现
@Test
public void arrset() {
Set<String> set=new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("a");
set.add("d");
System.out.println("set集合的长度:"+set.size());//打印set的长度 长度为4代表a和d只添加了一个
System.out.println("-------------");
String s = set.toString();//将set数组转化为字符串
System.out.println(s);
System.out.println("-------------");
//迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("-------------");
//增强for
for (String se:set){
System.out.println(se);
}
}
输出结果
Map集合
Map集合的特点:
1.无序
2.以键值对的方式添加元素,键不能重复,值能重复
遍历方式:
1.通过.keySet()
2.通过.entrySet()
代码实现
@Test
public void arrMap(){
Map<String,String> m=new HashMap<>();
m.put("a","aaa");
m.put("b","bbb");
m.put("c","ccc");
m.put("d","ddd");
//通过.keySet()遍历
Set<String> keySet = m.keySet();//获取键
for (String str:keySet){
System.out.println(str+" "+m.get(str));//m.get(str)通过键获取值
}
System.out.println("-----------------");
//通过.entrySet()遍历
Set<Map.Entry<String, String>> entries = m.entrySet();//将Map几个转为Set集合
Iterator<Map.Entry<String, String>> iterator = entries.iterator();//通过迭代器遍历
while (iterator.hasNext()){
Map.Entry<String, String> set = iterator.next();
System.out.println(set.getKey()+" "+set.getValue());
}
}
输出结果
List集合
list集合的特点:
1.有序
2.有索引
3.元素可重复
遍历方式:
1.for循环
2.增强for
3.迭代器(删除LIst集合某元素最合适的遍历的方法)
代码实现
public void arrlist(){
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(1);
list.add(2);
list.add(3);
//for循环
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
System.out.println("---------");
//增强for
for(Integer nu:list){
System.out.println(nu);
}
System.out.println("---------");
//迭代器
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
输出结果
拓展list的删除元素为什么要用迭代器
如果用增强for会报错
如果用的for循环可能会伪删除(你能删的了第一个可能删不了第二个),如下:
迭代器就能完美删除了