java集合知识总结
来源:互联网 发布:淘宝企业店铺要钱吗 编辑:程序博客网 时间:2024/05/22 17:28
集合
list
ArrayList list = new ArrayList<>();
ListIterator<String> iterator = list.listIterator();while (iterator.hasNext()) { String string = (String) iterator.next(); System.out.println(string);}for(String s : list){ System.out.println(s);}
Collection
- boolean add(Object e)
确保此 collection 包含指定的元素 - int size()
返回此 collection 中的元素数。 - boolean isEmpty()
如果此 collection 不包含元素,则返回 true。 - void clear()
移除此 collection 中的所有元素。 - boolean addAll(Collection c)
将指定 collection 中的所有元素都添加到此 collection 中 - boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。 Iterator iterator()
返回在此 collection 的元素上进行迭代的迭代器。Collection collection = new ArrayList<>();Iterator iterator =collection.iterator();
- boolean hasNext()
如果仍有元素可以迭代,则返回 true。 - E next()
返回迭代的下一个元素。 Object[] toArray()
返回包含此 collection 中所有元素的数组Collection collection = new ArrayList<>();collection.add("women");collection.add("doushi");collection.add("中国人");Object[] objects = collection.toArray();
- boolean add(Object e)
LinkedList
ListIterator<Person> iterator = list.listIterator();while(iterator.hasNext()){ System.out.println(iterator.next());}
- E element()
获取但不移除此列表的头(第一个元素)。 - E getFirst()
返回此列表的第一个元素。 - E remove()
获取并移除此列表的头(第一个元素)。
- E element()
list
- void add(int index, E element)
在列表的指定位置插入指定元素 - E get(int index)
返回列表中指定位置的元素。 - ListIterator listIterator()
返回此列表元素的列表迭代器 - boolean hasPrevious()
如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。 E previous()
返回列表中的前一个元素。ListIterator iterator = list.listIterator();while (iterator.hasNext()) {Object object = (Object) iterator.next();System.out.println(object);}
- void add(int index, E element)
//java.util.ConcurrentModificationException 并发修改异常
/** * 产生的原因: * 迭代器依赖于集合存在,在迭代的过程中集合发生了改变,但是迭代器还是依赖于原来的集合 * 并没有发生改变,所以出现了该异常。 * * 解决方案: * 1、让迭代器自己添加 * 2、用普通for循环 * */ListIterator iterator = list.listIterator();while (iterator.hasNext()) { String object = (String) iterator.next(); if(object.equals("小宋")){ list.add("隔壁老王"); iterator.add("隔壁老王"); }}
Vector
- void addElement(E obj)
将指定的组件添加到此向量的末尾,将其大小增加 1。 - E elementAt(int index)
返回指定索引处的组件。 - Enumeration elements()
返回此向量的组件的枚举 - boolean hasMoreElements()
测试此枚举是否包含更多的元素。 E nextElement()
如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。Vector vector = new Vector<>();
vector.add(10);
vector.add(520);
vector.addElement(10000);Enumeration em = vector.elements();
while(em.hasMoreElements()){
System.out.println(em.nextElement());
}ListIterator iterator = vector.listIterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}for(int i =0;i
- void addElement(E obj)
- HashSet
- HashSet<String> hashSet = new HashSet<>(); hashSet.add("张三"); hashSet.add("李四"); Iterator<String> iterator = hashSet.iterator(); while (iterator.hasNext()) { String string = (String) iterator.next(); System.out.println(string); } HashSet<Person> hashSet = new HashSet<>(); hashSet.add(new Person("张三", 18)); hashSet.add(new Person("李四", 28)); for (Person person : hashSet) { System.out.println(person); }
- HashSet比较:
- 先比较hashCode,如果hashcode一样,再比较equals(),
- equals()相同,不加入;equals()不相同加入
- hashcode不一样直接加入
LinkedHashSet
LinkedHashSet<Person> set = new LinkedHashSet<>();set.add(new Person("张三", 18));set.add(new Person("李四", 28));set.add(new Person("王五", 38));set.add(new Person("王五", 38));for (Person person : set) { System.out.println(person);}
比较器接口的实现类
public class MyComparator implements Comparator<Person> {@Overridepublic int compare(Person t1, Person t2) {int a = t1.age - t2.age;if(a==0){ return t1.name.compareTo(t2.name);}return a;}}
TreeSet
TreeSet<Integer> set = new TreeSet<>();set.add(100);Iterator<Integer> iterator = set.iterator();while (iterator.hasNext()) { Integer integer = (Integer) iterator.next(); System.out.println(integer);}
- 使用自然排序
TreeSet()构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
TreeSet<Teacher> set = new TreeSet<>();set.add(new Teacher("唐僧",100));set.add(new Teacher("菩提老祖",3000));
Map集合
- map集合遍历:
- 1.put(K key, V value) 将指定的值与此映射中的指定键关联
- 2.Collection values() 返回此映射中包含的值的 Collection 视图。
- Set
//集合赋值Map<Integer, String> map = new HashMap<>(); map.put(1, "java"); map.put(2, "php"); map.put(3, "c");//遍历value值 Collection<String> collection = map.values(); for(String string:collection){ System.out.print(string); }//通过Entry遍历循环打印K、V值//先找(结婚证)Entry,得到Entry在通过getKEy和getValue获取值Set<Map.Entry<Integer, String>> set = map.entrySet(); for (Entry<Integer, String> entry : set) { Integer key = entry.getKey(); String value = entry.getValue(); System.out.println(key+","+value); }
- 一个map作为list元素的集合
ArrayList<HashMap<String, String>> list = new ArrayList<>(); HashMap<String, String> map = new HashMap<>(); map.put("1", "java"); map.put("2", "php"); map.put("3", "android"); list.add(map); for(HashMap<String, String> hashMap : list){ Set<Map.Entry<String, String>> set =hashMap.entrySet(); for(Map.Entry<String, String> entry : set){ System.out.println(entry.getKey()+","+entry.getValue()); } }
Map集合的实现类的区别:
- hashMap
- 基于哈希表的map借口实现
- 允许null值和null键
- 线程不同步,安全低,效率高
- treeMap
- 基于红黑树的实现
- hashMap和treeMap的选择:
- hashMap效率高于TreeMap;数据添加修改使用HashMap;数组排序使用TreeMap
- hashMap和hashTable区别
- 除非同步和允许使用null之外,hashMap类与hashTable大致相同
- hashMap是不同步,hashTable是同步
- hashMap允许使用null值和null键,HashTable不允许null和null键
- LinkedHashMap
- Map借口的哈希表和链表实现,具有可预知迭代顺序。
-遍历
//map集合---》方法1 for(Entry<Integer, String> entry:map.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } //map集合--》方法2 for(Integer key:map.keySet()){ System.out.println("key="+key); } for(String value:map.values()){ System.out.println("value="+value); } //map集合:Interator Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry<Integer, String> entry = iterator.next(); System.out.println(entry.getKey()+":"+entry.getValue()); }
- Java知识总结-集合
- java集合知识总结
- JAVA--集合知识总结
- Java知识总结-集合二
- Java知识总结-Map集合
- Java集合框架知识总结
- java集合框架知识总结
- java集合List知识总结
- java集合知识整理总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- List集合知识总结
- 集合框架知识总结
- python调用resnet模型 对人脸图片进行特征提取,提取全连接层特征向量
- B
- Eclipse 打报错An internal error occurred during: "reload maven project". java.lang.NullPointerException
- java基本框架
- Linux C 一站式学习 第一部分基础知识
- java集合知识总结
- 替换host文件配置
- AndrewNg机器学习——01
- sdut 3252 Lowest Unique Price
- Django个人网站,从开发到部署总结
- 汇编指令的学习1——ARM汇编的特点
- Oracle循环语句及例子(几种循环语句的语法)
- 关于JDBC+MySQL批量写入: 用insert values方式批量写入
- 文本处理工具