在完成对C语言的学习后,我最近开始了对C++和Java的学习,目前跟着视频学习了一些语法,也跟着敲了一些代码,有了一定的掌握程度。现在将跟着视频做的笔记进行整理。本篇博客是整理Java知识点的第十七篇博客。
本篇博客介绍了Java的集合体系和Collection集合。
本系列博客所有Java代码都使用IntelliJ IDEA编译运行,版本为2022.1。所用JDK版本为JDK11。
目录
集合分为单列的Collection和双列的Map。Map有HashMap等。Collection包括可重复的List和不可重复的Set。List包括ArrayList,LinkedList等。Set包括HashSet和TreeSet等。
Collection是单列集合的顶层接口,表示一组对象,这些对象也称为Collection的元素。JDK不提供此接口的任何直接实现,提供更具体的子接口实现,如Set和List。
- import java.util.ArrayList;
- import java.util.Collection;
- public class collection {
- public static void main(String[] args) {
- Collection
test = new ArrayList(); - test.add("Hello ");
- test.add("world ");
- test.add("Hello ");
- test.add("Java");
- System.out.println(test);
- }
- }
这段代码使用ArrayList实现。程序的输出是:
[Hello , world , Hello , Java]
boolean add(E e)将e添加至集合中。
boolean remove(Object o)将o从集合中移出。
void clear()清空集合。
boolean contains(Object o)判断集合中是否存在o,存在为true,否则为false。
boolean isEmpty()判断是否为空,是空则为true,否则为false。
int size()求集合的长度,就是集合的元素个数,并将结果返回。
- import java.util.Collection;
- import java.util.ArrayList;
- public class collectmethod {
- public static void main(String[] args){
- Collection
test = new ArrayList(); - System.out.println(test.isEmpty());
- test.add("Hello");
- test.add("World");
- System.out.println(test.isEmpty());
- System.out.println(test);
- System.out.println(test.remove("Java"));
- System.out.println(test);
- test.clear();
- System.out.println(test.isEmpty());
-
- test.add("Hello");
- test.add("Java");
- System.out.println(test.contains("Java"));
- System.out.println(test);
- System.out.println(test.remove("Hello"));
- System.out.println(test);
- System.out.println(test.contains("Hello"));
- System.out.println(test.size());
- }
- }
程序的输出是:
true
false
[Hello, World]
false
[Hello, World]
true
true
[Hello, Java]
true
[Java]
false
1
Iterator是迭代器,是集合的专用遍历方式。使用迭代器需要导包:
import java.util.Iterator
迭代器的定义格式是 Iterator
迭代器通过集合的iterator()方法得到。
迭代器的E next()方法返回迭代中的下一个元素。
迭代器的boolean hasNext()判断迭代器是否有更多元素,有则返回true,否则为false。
- import java.util.Collection;
- import java.util.ArrayList;
- import java.util.Iterator;
- public class Iteratortest {
- public static void main(String[] args) {
- Collection
c = new ArrayList(); - c.add("Hello ");
- c.add("World ");
- c.add("Java");
-
- Iterator
it = c.iterator(); - while(it.hasNext()){
- String s = it.next();
- System.out.println(s);
- }
- }
- }
程序使用迭代器遍历集合。程序的输出是:
Hello
World
Java
- public class student {
- private String name;
- private int age;
- public student(){}
- public student(String name,int age) {
- this.name = name;
- this.age = age;
- }
-
- public void setname(String name){
- this.name = name;
- }
- public String getname(){
- return name;
- }
- public void setage(int age){
- this.age = age;
- }
- public int getage(){
- return age;
- }
- }
这是student类,本例中存储的类。
- import java.util.Iterator;
- import java.util.Collection;
- import java.util.ArrayList;
- public class studenttest {
- public static void main(String[] args){
- Collection
test = new ArrayList(); -
- student s1 = new student("Kevin",30);
- student s2 = new student();
- s2.setname("Guillermo");
- s2.setage(25);
- student s3 = new student("Luis",27);
-
- test.add(s1);
- test.add(s2);
- test.add(s3);
- Iterator
it = test.iterator(); - while(it.hasNext()){
- student temp = it.next();
- System.out.println("The name is " + temp.getname());
- System.out.println("The age is " + temp.getage());
- }
- }
- }
程序使用集合存储学生类对象,并进行遍历。程序的输出是:
The name is Kevin
The age is 30
The name is Guillermo
The age is 25
The name is Luis
The age is 27