1.集合
1.集合的介绍
1.集合主要是两组(单列集合,双列集合) 2.Collection接口有两个重要的子接口List和Set,他们的实现子类都是单列集合 3.Map的实现子类是双列集合
2.集合的好处
1.可以动态保存任意多个对象,使用比较方便。 2.提供了一系列方便的操作对象的方法。 3.使用集合添加,删除新元素简单方便
2.Collection接口和常用方法
1.Collection接口实现类的特点
1.Collection实现子类可以存放多个元素,每个元素可以是Object。 2.Collection的实现类,有些是有序的(List),有些不是有序的(Set) 3.Collection的实现类,有些可以存放重复的元素,有些不可以 4.Collection接口没有直接的实现子类,是通过他的子接口Set和List来实现的。
2.常用方法
1.add添加单个元素
List list01 = new ArrayList();
list01.add("demo");
list01.add(99);
list01.add(true);
list01.add(false);
list01.add(5.66);
System.out.println("list=" + list01);
2.remove删除指定元素
list01.remove(0);
System.out.println("删除第一个元素后的list01=" + list01);
list01.remove(true);
System.out.println("删除true的list01=" + list01);
3.contains查找元素是否存在
System.out.println("jack是否存在"+list01.contains("jack"));
System.out.println("demo是否存在"+list01.contains("demo"));
4.isEmpty判断是否为空
System.out.println("元素是否为空?"+list01.isEmpty());
5.clear清空
list01.clear();
System.out.println("清空后list01=" + list01);
6.addAll添加多个元素
ArrayList list02 = new ArrayList();
list02.add("零零龙龙");
list02.add("杜雯菲");
list01.addAll(list02);
System.out.println("list01=" + list01);
7.containsAll查找多个元素是否都存在
System.out.println("多个元素是否都存在?"+list02.containsAll(list02));
8.removeAll删除多个元素
list01.add("灵笼");
list01.removeAll(list02);
System.out.println("list01=" + list01);
3.完整版示例
package com.demo;
import java.util.ArrayList;
import java.util.List;
public class test01 {
public static void main(String[] args) {
List list01 = new ArrayList();
list01.add("demo");
list01.add(99);
list01.add(true);
list01.add(false);
list01.add(5.66);
System.out.println("list=" + list01);
list01.remove(0);
System.out.println("删除第一个元素后的list01=" + list01);
list01.remove(true);
System.out.println("删除true的list01=" + list01);
System.out.println("jack是否存在"+list01.contains("jack"));
System.out.println("demo是否存在"+list01.contains("demo"));
System.out.println("元素个数="+list01.size());
System.out.println("元素是否为空?"+list01.isEmpty());
list01.clear();
System.out.println("清空后list01=" + list01);
ArrayList list02 = new ArrayList();
list02.add("零零龙龙");
list02.add("杜雯菲");
list01.addAll(list02);
System.out.println("list01=" + list01);
System.out.println("多个元素是否都存在?"+list02.containsAll(list02));
list01.add("灵笼");
list01.removeAll(list02);
System.out.println("list01=" + list01);
}
}
4.测试结果.
3.Collection接口遍历元素方式01(Iterator迭代器)
1.基本介绍
1.Iterator对象称为迭代器,主要用于遍历Collection集合中的元素 2.所有实现了Collection接口的集合类都有一个Iterator()方法,用以返回一个实现了Iterator接口的对象,及可以返回一个迭代器。 3.Iterator仅用于遍历集合,Iterator本身并不存放对象。
2.Iterator接口方法
示例
package com.demo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionIterator {
@SuppressWarnings({"all"})
public static void main(String[] args) {
Collection book = new ArrayList();
book.add(new Book("asfdfds", "dome", 10.1));
book.add(new Book("sdfdfv", "jack", 5.1));
book.add(new Book("xcvxbvcb", "jim", 34.6));
Iterator iterator = book.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println("obj=" + obj);
}
iterator = book.iterator();
System.out.println("===第二次遍历===");
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println("obj=" + obj);
}
}
}
class Book {
private String name;
private String author;
private double price;
public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
测试结果
在调用next()方法之前必须要调用hasNext()进行检测,若未调用,则下一条记录无效,且会抛出异常
4.Collection接口遍历元素方式02(增强for循环)
//1. 使用增强for, 在Collection集合 //2. 增强for, 底层仍然是迭代器 //3. 增强for可以理解成就是简化版本的 迭代器遍历
package com.demo;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionFor {
@SuppressWarnings({"all"})
public static void main(String[] args) {
Collection col = new ArrayList();
Book book1 = new Book("sadaasd", "domo", 10.1);
Book book2 = new Book("mngfdbv", "JIm", 5.1);
Book book3 = new Book("fhgfhyuf", "jack", 34.6);
col.add(book1);
col.add(book2);
col.add(book3);
System.out.println("增强数组遍历Collection集合01:");
for (Object book : col) {
System.out.println("book=" + book);
}
System.out.println("增强数组遍历Collection集合02:");
for (Object o : col) {
System.out.println("book=" + o);
}
System.out.println("增强数组遍历整型数组:");
int[] nums = {2,6,5,4};
for (int i : nums) {
System.out.print(" i=" + i);
}
System.out.println("增强数组遍历字符串数组:");
String[] tt = {"demo","javk","Jim","tom"};
for (int i : nums) {
System.out.print(" i=" + i);
}
}
static class Book {
private String name;
private String author;
private double price;
public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
}
测试结果
|