前几天做Java实验的时候,打算用foreach遍历一个ArrayList集合,并且当集合中的某个元素符合某个值时删除这个元素。写完运行时抛出了ConcurrentModificationException异常,于是上网搜索了相关资料,记录一下。 当时代码与下方类似,在foreach循环时判断元素的值,当元素的值与2相等时删除 1package Test;2 3import java.util.ArrayList;4 5publicclass Main {6 7publicstaticvoid main(String[] args) {8 ArrayList<I...
java集合学习(二)在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以快速寻找的HashMap,可以自动排序而且不重样的TreeSet,可以保证线程安全的Hashtable,既可以保证数据不重样又可以键值存放的HashSet等等,这些数据结构都适用于不同的场景,各有其长处,我们应该仁者见仁,智者见智,数据结构的使用因需求而异,没有最...
public static void main(String[] args) {int[] nums = { 5, 6, 6, 6, 8, 8, 7 };List<Integer> numList = new ArrayList<Integer>();for (int i : nums)numList.add(i);Set<Integer> numSet = new HashSet<Integer>();numSet.addAll(numList);System.out.println(numSet);}
原文:http://www.cnblogs.com/silianbo/p/4628655.html
一、 ArrayList概述:本文的源代码分析基于的JDK版本是1.8.
ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。
ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。
ArrayList实现了Serializable接口,因此它支...
1.初识LinkedList上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元的地址),每次查找数据的时候,通过某个存储...
java的集合有三类:list,set,map。list和set继承了collection接口。区别(list可以添加重复对象,且按照索引位置排序;set没有这两种特点)。map是通过key操作里面的value,操作的是成对的对象。put放入对象,get取出对象。另外:colletion没有随机访问的get()方法,因为collection还包括set,而set有自己的内部顺序。所以,要检查collection元素,必须使用iterator对象。1、list中有ArrayList(类似数组形式进行存储) 和Linked...
21.1 引出问题一个问题?前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决?请做一个公司职员薪水管理系统,要求完成如下功能:1、当有新员工时,将该员工加入到管理系统;2、可以根据员工号,显示该员工的信息;3、可以显示所有员工信息;4、可以修改员工的薪水;5、当员工离职时,将该员工从管理系统中删除;6、可以按照薪水从低到高顺序排序;7、可以统计...
原文:http://longpo.iteye.com/blog/2204631
集合 |--Collection |--List |--ArrayList: 底层数组, 线程不同步, 查询快 |--LinkedList: 底层链表, 线程不同步, 增删快 |--Vector: 底层数组, 线程同步, 查询增删都慢 |--Set(底层使用的 Map 集合) |--HashSet: 底层 hash 表, 线程不同步, 无序 |--LinkedHashSet: 有序 |--TreeSet: 底层二叉树, 线程不同步, 元素排序 |--Map |--H...
/*
Collections是Collection的工具类。
工具类中其中两个比较常用的方法就是:
1,sort(list) 、 sort(list,自定义比较器)
2,max(list) 、 max(list,自定义比较器)
3,binarySearch(list,key) //利用折半查找的方法找到list中key元素的索引,存在则返回索引,不存在则返回-(插入点)-1*/import java.util.*;class CollectionsDemo
{public static void main(String[] args) {sortDemo();}public static void sortDemo(){List...
默认升序package peng;import java.util.Arrays; public class Testexample {public static void main(String[] args) { int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a);for(int arr:a) {System.out.print(arr + " ");}}}自定义 利用Collections.reverseOrder()方法:package peng;import java.util.Arrays;
import java.util.Collections;
public class Testexample {public static void ma...
public Object clone()返回hashMap集合的副本 其余的方法都是实现Map集合的https://www.cnblogs.com/xiaostudy/p/9510763.html 原文:https://www.cnblogs.com/xiaostudy/p/9510969.html
HashMap 双列集合HashMap是属于java集合框架3大类接口的Map类, Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key不要求有序,不允许重复.value同样不要求有序,但允许重复. Iterator接口是负责定义访问和遍历元素的接口 1. 使用Iterator迭代器缺点: 1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后...
一、对象数组1.对象数组概述 ①基本类型的数组:存储的元素为基本类型。int[] arr={1,2,3,4} ②对象数组:存储的元素为引用类型。Student[] stus = new Student[3];二、集合类之ArrayList1.集合概述 我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个...
1.set子接口特点“无下标、无序、不可重复。2.实现setset是一个接口 所以不能使用new Setnew的时候需要使用到set的两个实现类 hashSet、TreeSet 3.HashSet存储原理:利用Object类里面的hashcode方法计算hash值。如果hash值相等的话,在进行equals方法的调用,如果返回为true则不给予存入。(比如说你有一个celebrity类 就可以重写equals方法。比如存入两个 刘德华,20岁 看成一个人 不允许存入2个)(同时呢 我们根据存储步骤 先...