JAVA知识点总结(六)(集合)
第十九章 集合 一、数组弊端: 数组长度是固定的,无法继续添加元素。 二、什么是集合: Java提供一个集合类,它的长度是可以改变的,能储存任意的对象,长度随着元素的增加而增加。 三、集合和数组的区别: 1.数组:能存放引用数据类型和基本数据类型。 2.集合:只能存放引用数据类型(对象),即使存放基本数据类型,也会自动帮你装箱,把基本数据类型转换为引用数据类型。 3.数组长度是固定的,集合长度能够改变。 四、什么时候用数组,什么时候用集合? 1.如果元素个数固定,用数组 2.对元素进行增删改查操作时,使用集合。 五、集合类: 1、创建一个集合: 1 Collection c = new ArrayList(); 2、向集合内添加元素: 1 Collection c = new ArrayList(); 2 boolean b1 = c.add("abc"); 3 boolean b2 = c.add(10); 4 boolean b3 = c.add(true); 3、删除集合内指定元素: 1 ArrayList c2 = new ArrayList(); 2 c2.add("a"); 3 c2.add("b"); 4 c2.add("c"); 5 System.out.println(c2); 6 7 //从集合中移除指定元素 8 c2.remove("b"); 9 System.out.println(c2); 4、判断一个集合是否为空: 1 //判断一个集合是否为空 2 System.out.println(c2.isEmpty()); 5、获取集合的长度: 1 // 获取集合当中的长度 2 System.out.println(c2.size()); 7、清空集合内的所有元素: 1 // 清空集合内所有元素 2 c2.clear(); 3 System.out.println(c2); 8、合并两个集合: 1 c1.addAll(c2);
9、从c1中删除两个集合的交集: 1 c1.removeAll(c2);
10、判断c1中是否完全包含c2: 1 //boolean res = c1.containsAll(c2); 2 //System.out.println(res); 11、取交集,将交集的值赋值给c1: 1 boolean b1 = c1.retainAll(c2); 2 System.out.println(b1); 3 System.out.println(c1); 12、通过数组遍历集合: Collection c = new ArrayList(); c.add("a"); c.add("b"); c.add("c"); //将集合转化为数组,所有元素提升为Object类型 Object []arr = c.toArray(); for(int i = 0;i<arr.lengthi;i++){ System.out.println(arr[i]); } 六、ArrayList集合: 1、使用迭代器遍历集合: 1 List list = new ArrayList(); 2 list.add("a"); 3 list.add("2"); 4 list.add("c"); 5 list.add("d"); 6 7 //1.遍历集合 8 Iterator it = list.iterator(); 9 while(it.hasNext()){ 10 System.out.pringln(it.next()); 11 } 12 } 2、并发修改异常: 在迭代集合过程中,是不允许修改集合结构的,比如添加,删除元素(个数的改变),如果改变了,就会发生并发修改异常。 3、List 当中特有的迭代器,在删除修改时,不会造成并发修改异常。 1 ListIterator it = list.listIterator();
4、去除List集合中的重复元素: 1 static ArrayList getSingleEle(ArrayList list) { 2 // 1.创建一个新的集合 3 ArrayList newa1 = new ArrayList(); 4 // 2.将一次取出每一个元素 5 Iterator itr = list.iterator(); 6 while (itr.hasNext()) { 7 Object obj = itr.next(); 8 // 3.每次取出元素都会判断新集合中已经有该元素 9 // 4.如果是已有元素,不把元素存放到新集合中 10 if (!newa1.contains(obj)) { 11 newa1.add(obj); 12 } 13 } 14 //System.out.println(newa1); 15 return newa1; 16 } 5、去除集合内重复的元素为对象时,重写equals方法: 1 class Student { 2 String name; 3 int age; 4 5 Student(String name,int age) { 6 this.name = name; 7 this.age = age; 8 } 9 10 @Override 11 public String toString() { 12 return "Student [name=" + name + ",age=" + age + "]"; 13 } 14 15 // 做对象的比较,不想让其对比地址,必须要覆盖equals 根据自己的需求来定义什么时候相等(也可以通过快速生成) 16 public boolean equals(Object obj) { 17 Student stu = (Student) obj; 18 return this.name.equals(stu.name) && this.age == stu.age; 19 } 20 21 } 6、LinkedList集合: 1 LinkedList list = new LinkedList(); 2 list.add("a"); 3 list.add("b"); 4 list.add("c"); 5 System.out.println(list); 7、Vector集合: 1 public static void main(String[] args) { 2 //Vector 只是在内部进行了加锁,更加的安全 3 Vector v = new Vector(); 4 v.add("a"); 5 v.add("b"); 6 v.add("c"); 7 System.out.println(v); 8 9 } 10 11 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 在Spring中将PersistenceException转换为DataAcces
- java中的ArrayList
- 大多数人不知道的:HashMap链表成环的原因和解决方案
- Spring中利用配置文件和@value注入属性值代码详解
- SpringDataJPA(ORM对象关系映射框架)
- java – 给定正数的所有数字之和
- java – 如何使用CMU Sphinx 4进行语音与英文voxforge模型的
- java中sql字符串的单引号的无效字符
- 使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件
- 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节