java集合学习一-Collection学习

集合类练习

  1 package com.example.demo.collection;
  2
  3 import org.junit.Test;
  4
  5 import java.util.*;
  6
  7 public class CollectionTest {
  8     @Test
  9     public void test1() {
 10         Collection coll = new ArrayList();
 11         coll.add("AA");
 12         coll.add("BB");
 13         coll.add(123); // 自动装箱
 14         coll.add(new Date());
 15         System.out.println(coll.size()); // 个数
 16
 17         // addAll(Collecton coll1):将coll1集合添加到Collecton集合中
 18         Collection coll1 = new ArrayList();
 19         coll1.add(456);
 20         coll1.add("CC");
 21         coll.addAll(coll1);
 22         System.out.println(coll.size());
 23         System.out.println(coll);
 24         //isEmpty():判断是否为空
 25         System.out.println(coll1.isEmpty());
 26         // clean清空集合元素
 27         coll1.clear();
 28         System.out.println(coll1.isEmpty());
 29     }
 30
 31
 32     @Test
 33     public void test2() {
 34         Collection coll = new ArrayList();
 35         coll.add(123);
 36         coll.add(456);
 37         coll.add(new String("Tom"));
 38         coll.add(false);
 39         coll.add(new Person("jerry", 20));
 40
 41         // contains(Object obj) 判断元素中是否包含obj
 42         boolean contains = coll.contains(123);
 43         System.out.println(contains);
 44         System.out.println(coll.contains(456));
 45         System.out.println(coll.contains(new String("Tom")));
 46         System.out.println(coll.contains(false));
 47         System.out.println(coll.contains(new Person("jerry", 20)));
 48         System.out.println("======");
 49         // 对象1是不是包含对象2的数据
 50         Collection coll1 = Arrays.asList(123, 456);
 51         boolean b = coll.containsAll(coll1);
 52         System.out.println(b);
 53     }
 54
 55     @Test
 56     public void test3() {
 57         Collection coll = new ArrayList();
 58         coll.add(123);
 59         coll.add(456);
 60         System.out.println(coll);
 61         boolean a = coll.remove(123);
 62         System.out.println(coll);
 63         System.out.println("是否移除成功:" + a);
 64         System.out.println(coll.remove(123));
 65         System.out.println(coll);
 66     }
 67
 68     @Test
 69     public void test4() {
 70         Collection coll = new ArrayList();
 71         coll.add(123);
 72         coll.add(456);
 73         coll.add(789);
 74         coll.add("101");
 75         Collection cool1 = Arrays.asList(123, "101");
 76         // 将b的元素在a里面全部移除
 77         System.out.println(coll.removeAll(cool1));
 78         System.out.println(coll);
 79     }
 80
 81
 82     @Test
 83     public void test5() {
 84         Collection coll = new ArrayList();
 85         coll.add(123);
 86         coll.add(456);
 87         coll.add(789);
 88         coll.add("101");
 89         Collection coll1 = new ArrayList();
 90         coll1.add(123);
 91         coll1.add(456);
 92         coll1.add(789);
 93         coll1.add("101");
 94         System.out.println(coll.equals(coll1));
 95     }
 96
 97     // 因为是有序集合,顺序不一样,所以
 98     @Test
 99     public void test6() {
100         Collection coll = new ArrayList();
101         coll.add(123);
102         coll.add(456);
103         coll.add("101");
104         coll.add(789);
105         Collection coll1 = new ArrayList();
106         coll1.add(123);
107         coll1.add(456);
108         coll1.add(789);
109         coll1.add("101");
110         System.out.println(coll.equals(coll1));
111     }
112
113     // 计算hash值
114     @Test
115     public void test7() {
116         Collection coll = new ArrayList();
117         coll.add(123);
118         coll.add(456);
119         coll.add("101");
120         coll.add(789);
121         System.out.println(coll.hashCode());
122         // 集合转换为数组
123         Object[] arr = coll.toArray();
124         for (Object o : arr) {
125             System.out.println(o);
126         }
127
128         System.out.println("========");
129         // 数组转集合
130         List<String> list = Arrays.asList(new String[]{"aa","bb","cc","dd"});
131         System.out.println(list);
132         //反例
133         List<int[]> ints = Arrays.asList(new int[]{123, 456});
134         System.out.println(ints);
135         // 修改
136         List<Integer> arr2 = Arrays.asList(new Integer[]{123, 456, 789});
137         System.out.println(arr2);
138         System.out.println(arr2.size());
139
140         List arr3 = Arrays.asList(new int[]{123, 456, 789});
141         System.out.println(arr3.size());
142     }
143
144     @Test
145     public void test8() {
146         Collection coll = new ArrayList();
147         coll.add(123);
148         coll.add(456);
149         coll.add("101");
150         coll.add(789);
151         Iterator iterator = coll.iterator();
152         // 第一种方式
153         for (int i=0;i<coll.size();i++){
154             System.out.println(iterator.next());
155         }
156         System.out.println("===");
157         // 第二种方式
158         while (iterator.hasNext()){
159             System.out.println(iterator.next());
160         }
161     }
162
163 }

CollectionTest

 1 package com.example.demo.collection;
 2
 3 import lombok.*;
 4
 5 import java.util.Objects;
 6
 7 //@Data
 8 //@AllArgsConstructor
 9 //@NoArgsConstructor
10 //@ToString
11 public class Person {
12     private String name;
13
14     public void setName(String name) {
15         this.name = name;
16     }
17
18     public void setAge(Integer age) {
19         this.age = age;
20     }
21
22     public String getName() {
23         return name;
24     }
25
26     public Integer getAge() {
27         return age;
28     }
29
30     public Person() {
31     }
32
33     public Person(String name, Integer age) {
34         this.name = name;
35         this.age = age;
36     }
37
38     private Integer age;
39
40     @Override
41     public boolean equals(Object o) {
42         if (this == o) return true;
43         if (o == null || getClass() != o.getClass()) return false;
44         Person person = (Person) o;
45         return Objects.equals(name, person.name) &&
46                 Objects.equals(age, person.age);
47     }
48
49     @Override
50     public int hashCode() {
51         return Objects.hash(name, age);
52     }
53
54     @Override
55     public String toString() {
56         return "Person{" +
57                 "name=‘" + name + ‘\‘‘ +
58                 ", age=" + age +
59                 ‘}‘;
60     }
61 }

Person

原文地址:https://www.cnblogs.com/lizhen1412/p/12288867.html

时间: 2024-07-30 07:47:05

java集合学习一-Collection学习的相关文章

Java 集合系列 02 Collection架构

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接口,它们继承于Collection.L

java集合入门和深入学习,看这篇就差不多了

一.集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map:两者的区别: 1.Collection是单列集合:Map是双列集合 2.Collection中只有Set系列要求元素唯一:Map中键需要唯一,值可以重复 3.Collection的数据结构是针对元素的:Map的数据结构是针对键的. 泛型: 在说两大集合体系之前先说说泛型,因为在后面的集合中都会用到:所谓的泛型就是:类型的参数化 泛型是类型的一部分,类名+泛型是一个整体 如果有泛型,不使用时,参数的类型会自动

java 集合框架(三)Collection

Collection是集合框架的根接口,一个集合代表一组对象,我们称之为元素.不同的集合具有不同的特性,比如有的集合可以有重复元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作为集合的根接口,它规范定义了集合的通用方法,一个集合我们可以看作一个在内存中的小型数据库,而数据库的常用操作无外乎"增删改查",Collection中的方法也大体是这些类型操作. Java集合框架中没有直接实现Collection的子类,而是通过一系列子接口,比如List,Set,Q

Java集合框架之Collection集合

一.引言 Java集合框架和IO框架一样,看似很庞杂的体系框架,但是当你逐一深入每个集合的用法后,就能明显的看出他们之间的区别和联系.最后拎出一个框架图,就一目了然了.由于Java的集合框架分两大系Collection系和Map系,之所以要分开是因为Collection内存储的是线性集合,而Map的元素是以键值对(Key-Value)的形式存的.其实Map和Collection内部实现是存在联系的,学完就懂了.本文主要介绍的Collection中常用的集合的用法以及之间的区别. 二.Collec

java集合 源码解析 学习手册

学习路线: http://www.cnblogs.com/skywang12345/ 总结 1 总体框架 2 Collection架构 3 ArrayList详细介绍(源码解析)和使用示例 4 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) 5 LinkedList详细介绍(源码解析)和使用示例 6 Vector详细介绍(源码解析)和使用示例 7 Stack详细介绍(源码解析)和使用示例 8 List总结(LinkedList, ArrayList等使用

Java集合总结之Collection整体框架

前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java2中新增加的最令人兴奋的增强功能:类集.一个类集(collection)是一组对象.类集的增加使得许多java.util中的成员在结构和体系结构上发生根本的改变.它也扩展了包可以被应用的任务范围.Java的类集(Collection)框架使你的程序处理对象组的方法标准化.在Java 2出现之前,Java提供了一些专门的类如Dictionary,Vect

JAVA集合详解(Collection和Map接口)

在Java的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:            java.util        +Collection 这个接口extends自 --java.lang.Iterable接口           +List 接口               -ArrayList 类              -LinkedList 类              -Vector 类     此类是实现同步的 +Queue 接口         

java集合框架02——Collection架构与源码分析

Collection是一个接口,它主要的两个分支是List和Set.如下图所示: List和Set都是接口,它们继承与Collection.List是有序的队列,可以用重复的元素:而Set是数学概念中的集合,不能有重复的元素.List和Set都有它们各自的实现类. 为了方便,我们抽象出AbstractCollection类来让其他类继承,该类实现类Collection中的绝大部分方法.AbstractList和AbstractSet都继承与AbstractCollection,具体的List实现

Java 集合框架之Collection

此图是 java 中 Collection 相关的接口与类的关系的类图.其中,类只是集合框架的一部分,比较常用的一部分. 第一次画类图,着实很费劲,不过收获也不小. 下面是相关接口和类的解释说明.文字来自 JDK API 1.6 中文版.原谅我的懒惰,实在不想自己写,太麻烦.如有错误,还请指正. 如图,Set.Queue.List 接口都继承自 Collection 接口. AbstractCollection<E> 此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口