dijiuzu

 

20220806 第一组 于芮 list和map(第二十六天)

 
小白成长记——第二十六天
 
    今天主要学习了list和map集合的用法,好像又发现了新大陆,又发现了代码的奥秘,好像写的代码可以越来越少,但是实现的功能可以越来越多,果然,更加努力地学习就会发现更多新的乐趣,来看看今天的学习笔记吧!

list:有顺序的,数据可以重复

vector:和ArrayList几乎一样,

collection和map 的区别
collection:存放单值最大父接口
map:存放对值最大父接口

ArrayList和linklist的区别
arraylist :内部结构是数组,比较适合和高频率的查找和遍历
linklist:双向链表,比较适合高频率的新增和删除

ArrayList和vector的区别
ArrayList线程异步,线程不安全,效率高
vector线程同步,线程安全,效率低

set和list的区别
list:有顺序(先后顺序),元素可以重复
set:无顺序,元素不可以重复,顺序是先后顺序,其实有顺序,内部有一个专门排序的算法,
无序不等于随机,无序是没有按照先后添加顺序

treeset可以排序的集合
排序规则:需要排序的对象的类必须实现compareable接口
compareto方法(返回值int,代表排序结果)
负数-1:比较的两个值调用者小
0:比较的两个值相等
正数1:比较的两个值调用者大

hashset和linkset的区别和联系

比较接口
comparable:自然排序,排序规则固定
compareto:临时排序

map:接口,泛型接口(两个泛型)
存储对值key value(key不能重复,value可以重复)
没有顺序(添加的先后顺序)

hashtable和hashmap的区别
1.hashmap线程异步,线程不安全,hashtable线程同步,线程安全
2.hashmap的key可以为null,hashtable不可以为null的
linkedhashmap:双向链表

priperties:属性
是hashtable的子类,更多的是用来操作属性文件

集合的遍历
list集合的遍历方式
for循环
foreach增强for循环
迭代器(接口)-----iterator

set集合的遍历方式
map集合的遍历
1.for循环
2.增强for循环
entry是hashmap的内部类,每一组键值对是一个entry对象
3.增强for循环
4.迭代器


其他的集合
linkedhashmap
hashmap基础上,维护了一个双向链表
treemap 支持排序
collections是一个工具类

并发修改异常(线程安全问题)
迭代器以来集合存在,判断成功以后,如果集合中新增了元素,迭代器不知道,所以报错

解决
1.迭代器遍历元素,迭代器删除元素
2.普通for循环遍历,集合删除

     今天主要的实例主要是一些集合的使用实验,还有一些循环、迭代器的应用,实例让我更加理解了集合的应用有多么便捷!

  1 package F0806;
  2 
  3 import com.sun.source.tree.Tree;
  4 
  5 import javax.xml.transform.Source;
  6 import java.nio.charset.MalformedInputException;
  7 import java.sql.SQLOutput;
  8 import java.time.chrono.MinguoChronology;
  9 import java.util.*;
 10 
 11 public class Ch01 {
 12     /*public static void main(String[] args) {
 13         LinkedList<String >list=new LinkedList<>();
 14         list.add("a");
 15         list.add("b");
 16         list.add("c");
 17         list.add("d");
 18         list .addFirst("z");
 19         list .addLast("x");
 20         System.out.println(list.get(2));
 21         System.out.println(list);
 22     }*/
 23     /*public static void main(String[] args) {
 24         Set<Integer>set=new HashSet<>();
 25         set.add(Integer.valueOf(200));
 26         set.add(4);
 27         set.add(15);
 28         set.add(38);
 29         set.add(Integer.valueOf(200));
 30         System.out.println(set);
 31     }*/
 32     /*public static void main(String[] args) {
 33         Set<Integer>tree=new TreeSet<>();
 34 
 35         tree.add(-100);
 36         tree.add(50);
 37         tree.add(10);
 38         tree.add(100);
 39         tree.add(-19);
 40         Set<String>tree1=new TreeSet<>();
 41         tree1.add("1");
 42         tree1.add("a");
 43         tree1.add("hhhhhh");
 44         System.out.println(tree);
 45         System.out.println(tree1);
 46     }*/
 47     /*public static void main(String[] args) {
 48         LinkedHashSet<String>set=new LinkedHashSet<>();
 49 
 50         set.add("q");
 51         set.add("1");
 52         set.add("e");
 53         set.add("hhhh");
 54         System.out.println(set);
 55 
 56 
 57     }*/
 58    /* public static void main(String[] args) {
 59         List<Person> list = new ArrayList<>(16);
 60         list.add(new Person("张岳",1100));
 61         list.add(new Person("李四",1010));
 62         list.add(new Person("刘海柱",1020));
 63         list.sort(new Comparator<Person>() {
 64 //            @Override
 65 //            public int compare(Person o1, Person o2) {
 66 //                return 0;
 67 //            }
 68 //        });
 69         list.sort((o1,o2) -> {
 70                 if(o1.getId() < o2.getId()){
 71                     return -1;
 72                 }
 73                 if(o1.getId().equals(o2.getId())){
 74                     return 0;
 75                 }
 76                 return 1;
 77             });
 78         System.out.println(list);
 79     }*/
 80     /*public static void main(String[] args) {
 81         Map<String,String>map=new HashMap<>();
 82 
 83         map.put("1001","qq");
 84         map.put("1002","qy");
 85         map.put("1003","qr");
 86         map.put("1004","qe");
 87         map.put("1005","ww");
 88         System.out.println(map);
 89         System.out.println(map.get(1002));
 90         System.out.println(map.values());
 91         System.out.println(map.keySet());
 92 
 93     }*/
 94     /*public static void main(String[] args) {
 95         Map<String,String>map=new HashMap<>();
 96         map.put(null,null);
 97         System.out.println(map);
 98         Hashtable<String,String>table=new Hashtable<>();
 99         //table(null,null);
100         System.out.println(table);
101     }*/
102     /*public static void main(String[] args) {
103         List<String> list = new ArrayList<>();
104         list.add("a");
105         list.add("b");
106         list.add("c");
107         list.add("d");
108         list.add("e");
109        *//* for (int i = 0; i < list.size(); i++) {
110             System.out.println(list.get(i));
111         }*//*
112         *//*for (String s1:list){
113             System.out.println(s1);
114         }*//*
115         //迭代器
116         Iterator<String>iterator=list.listIterator();
117         while (iterator.hasNext()){
118             String s=iterator.next();
119             iterator.remove();
120             System.out.println(s);
121         }
122         System.out.println(list);
123     }*/
124     /*public static void main(String[] args) {
125        Set<Integer>set=new HashSet<>();
126        set.add(4);
127        set.add(12);
128        set.add(99);
129        //迭代器
130         *//*Iterator<Integer>iterator=set.iterator();
131         while(iterator.hasNext()){
132             System.out.println(iterator.next());
133         }*//*
134         for (Integer integer:set){
135             System.out.println(integer);
136         }
137         *//*for (int i = 0; i < set.size(); i++) {
138             System.out.println(set);
139         }*/
140     /*public static void main(String[] args) {
141         Map<String,String>map=new HashMap<>();
142         map.put("1001","qq");
143         map.put("1002","qw");
144         map.put("1003","qe");
145         map.put("1004","qr");
146         map.put("1005","qt");
147         Set<String>strings=map.keySet();
148         Iterator<String>iterator=strings.iterator();
149         while (iterator.hasNext()){
150             String s=iterator.next();
151             System.out.println(s+"->"+map.get(s));
152         }*/
153         //增强for循环
154         //entry是hasnmap的一个内部类,每一组键值对就是一个entry对象
155         //Set<Map.Entry<String, String>> entries = map.entrySet();
156 //        for (Map.Entry<String, String> entry : entries) {
157 //            System.out.print(entry.getKey() + "->");
158 //            System.out.println(entry.getValue());
159 //        }
160 
161         // 2.增强for循环
162 //        Set<String> strings = map.keySet();
163 //        Collection<String> values = map.values();
164 
165         // 1.for循环
166 //        Set<String> strings = map.keySet();
167 //        for (String s : strings) {
168 //            System.out.println(s + "->" + map.get(s));
169 //        }
170         /*public static void main(String[] args) {
171             List<String>names=new ArrayList<>();
172             names.add("qq");
173             names.add("q2");
174             names.add("qw");
175             names.add("qr");
176             names.add("q4");
177             for (int i = 0; i < names.size(); i++) {
178                 if(Objects.equals(names.get(i),"l")){
179                     names.remove(i);
180                     i--;
181                 }
182                 if("l".equals(names.get(i))){
183                 }
184             }
185             //倒序遍历
186             for (int i = names.size()-1; i >=0 ; i--) {
187                 if(Objects.equals(names.get(i),"l")){
188                     names.remove(i);
189                 }
190             }
191             //使用迭代器
192             Iterator<String>iterator=names.iterator();
193             while (iterator.hasNext()){
194                 String s=iterator.next();
195                 if(Objects.equals(s,"l")){
196                     iterator.remove();
197                 }
198             }
199             //增强for循环
200             for (String s:names){
201                 if(Objects.equals(s,"l")){
202                     names.remove(names.indexOf(s));
203                 }
204             }
205             System.out.println(names);
206         }*/
207     
208     }

 

 

 

posted on 2022-08-06 20:26  于芮  阅读(21)  评论(0编辑  收藏  举报

导航