/* list接口 ArrayList 采用异步处理方式,性能高,但属于非线程安全 Vector 采用同步处理方式,性能低,但属于线程安全 当程序考虑线程安全的时候选Vector,其他选择ArrayList,速度快,性能高 set接口不能加入重复元素,(记忆:s开头same反而不同),但是可以排序 set接口的常用子类 散列存放:HashSet(哈希的话没有排序) 有序存放:TreeSet(有序的) Iterator接口 集合输出的标准操作,使用Iterator接口 操作原理:迭达输出就是将元素一个个进行判断是否有内容,如果有内容就把内容取出 Map接口 key--->value的方式保存 常用子类 HashMap:无序存放,key不允许重复 Hashtable:无序存放,key不允许重复 public static void main(String[] args) { //list添加的数据可以重复,非线程安全,速度快 List<String> list=null; List<String> list1=null; list=new ArrayList<>(); list.add("A"); list.add("A"); list.add("B"); System.out.println(list);//[A, A, B] for (int i = 0; i <list.size(); i++) { System.out.println(list.get(i)); //A //A //B } System.out.println("移除了第一个元素之后为"); list.remove(0); for (int i = 0; i <list.size(); i++) { System.out.println(list.get(i)); //此时打印 A B } System.out.println("元素是否为空"+list.isEmpty());//false System.out.println(list.indexOf("A")); //此时A的下标为0 System.out.println("----------------------------"); list1=new Vector<>();//线程安全,但速度慢 list1.add("a"); list1.add("b"); list1.add("c"); for (int i = 0; i <list1.size(); i++) { System.out.println(list1.get(i)); //此时打印 a b c } System.out.println("----------------------------"); Set<String> set=new HashSet<>(); set.add("A"); set.add("B"); set.add("C"); set.add("D"); set.add("E"); System.out.println(set);//[D, E, A, B, C]没有顺序 set=new TreeSet<>(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); System.out.println(set);//[a, b, c, d, e]有顺序 System.out.println("----------------------------"); List<String>list3=new ArrayList<>(); list3.add("xiaoli"); list3.add("koky"); list3.add("lucy"); list3.add("jack"); //System.out.println(list3); Iterator<String> iterator=list3.iterator(); while (iterator.hasNext()) { String str=iterator.next(); if ("lucy".equals(str)) { //list3.remove(2);//error 迭代输出时候不能list删除元素 iterator.remove();//迭代的删除 } else { //System.out.println(iterator.next()); System.out.println(str); } } System.out.println("---------------------"); Map<String, String>map=new HashMap<>(); map.put("name", "jack"); //map的话添加通过put,不是list,set的add map.put("address", "beijing"); map.put("phone", "123456"); String key=map.get("name");//通过取key System.out.println(key); //输出value //怎么样判断key或者value是否存在? if (map.containsKey("address")) { System.out.println("key存在"); } else { System.out.println("key不存在"); } if (map.containsValue("beijing1")) { System.out.println("value存在"); } else { System.out.println("value不存在"); } //怎么取出全部的key和value呢? Set<String>s=map.keySet(); Iterator<String> i=s.iterator(); while (i.hasNext()) { System.out.println(i.next()); //打印全部的key,因为是set,没有顺序 } Collection<String>c=map.values(); Iterator<String> i1=c.iterator(); while (i1.hasNext()) { System.out.println(i1.next()); //打印全部的value } } }
时间: 2024-11-09 21:49:38