ToB企服应用市场:ToB评测及商务社交产业平台

标题: day18--Java集合01 [打印本页]

作者: 我可以不吃啊    时间: 2022-9-16 17:15
标题: day18--Java集合01
Java集合01

1.什么是集合?

前面我们保存数据使用的是数组,数组有不足的地方,我们来分析一下:

1.1集合的框架体系


例子
  1. package li.collections;
  2. import java.util.*;
  3. public class CollectionsTest {
  4.     public static void main(String[] args) {
  5.         //Collection
  6.         //Map
  7.         ArrayList arrayList = new ArrayList();
  8.         arrayList.add("jack");//单列
  9.         arrayList.add("tony");
  10.         HashMap hashMap = new HashMap();
  11.         hashMap.put("No1","北京");//双列
  12.         hashMap.put("No2","上海");      
  13.     }
  14. }
复制代码
2.Collection接口

  1. public interface Collecion<E> extends Iterable<E>
复制代码
2.1Collection方法

例子1:Collection接口不能直接被实例化,因此以实现了接口的子类ArrayList来演示
  1. package li.collections;
  2. import java.util.*;
  3. public class CollectionMethod {
  4.     public static void main(String[] args) {
  5.         List list = new ArrayList();
  6.         //1. add()添加单个元素
  7.         list.add("jack");
  8.         list.add(10);//list.add(new Integer(10)); 自动装箱
  9.         list.add(true);
  10.         System.out.println("list="+list);//list=[jack, 10, true]  注意里面的元素都是对象,非基本数据类型
  11.         //2. remove()删除指定元素
  12.         //list.remove(0);//指定删除的索引
  13.         //System.out.println("list="+list);//list=[10, true]
  14.         list.remove(true);//指定删除某个对象
  15.         System.out.println("list="+list);//list=[jack, 10]
  16.         //3. contains()查找元素是否存在
  17.         System.out.println(list.contains("jack"));//true
  18.         //4. size()获取元素个数
  19.         System.out.println(list.size());//2
  20.         //5. isEmpty()判断是否为空
  21.         System.out.println(list.isEmpty());//false
  22.         //6. clear()清空
  23.         list.clear();
  24.         System.out.println(list);//[]  空的集合
  25.         //7. addAll()添加多个元素
  26.         ArrayList list2 =new ArrayList();
  27.         list2.add("红楼梦");
  28.         list2.add("三国演义");
  29.         list.addAll(list2);
  30.         System.out.println("list="+list);//list=[红楼梦, 三国演义]
  31.         //8. containsAll()查找多个元素是否都存在
  32.         System.out.println(list.containsAll(list2));//true
  33.         //9. removeAll()删除多个元素
  34.         list.add("聊斋志异");
  35.         list.removeAll(list2);
  36.         System.out.println("list="+list);//list=[聊斋志异]
  37.     }
  38. }
复制代码
3.迭代器遍历


PS:在调用iterator.next()方法之前一定必须要调用iterator.hasNext()方法来进行检测,若不调用且下一条记录无效则会抛出 NoSuchElementException 异常。
例子:
  1. package li.collections;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.Iterator;
  5. public class CollectionIterator {
  6.     @SuppressWarnings({"all"})
  7.     public static void main(String[] args) {
  8.         Collection col = new ArrayList();
  9.         col.add(new Book("三国演义","罗贯中",10.1));
  10.         col.add(new Book("小李飞刀","古龙",5.1));
  11.         col.add(new Book("红楼梦","曹雪芹",34.6));
  12.         System.out.println("col"+col);//col[Book{name='三国演义', author='罗贯中', price=10.1}, Book{name='小李飞刀', author='古龙', price=5.1}, Book{name='红楼梦', author='曹雪芹', price=34.6}]
  13.         //现在想要遍历这个col集合
  14.         //1.先得到col集合对应的迭代器
  15.         
  16.         Iterator iterator = col.iterator();
  17.         
  18.         //2.使用while循环遍历
  19.         while (iterator.hasNext()) {
  20.             Object next =  iterator.next();
  21.             System.out.println(next);
  22.         }
  23.         //3.当退出while循环之后,这使得iterator迭代器指向最后的元素,
  24.         // 这时如果再执行iterator.next()就会出现NoSuchElementException异常
  25.         //4.如果想要再次遍历集合,则需要重置迭代器
  26.         //重置迭代器,这之后就可以再次遍历,实质上是重新创建了一个迭代器对象
  27.         iterator = col.iterator();
  28.     }
  29. }
  30. class Book{
  31.     private String name;
  32.     private String author;
  33.     private double price;
  34.     public Book(String name, String author, double price) {
  35.         this.name = name;
  36.         this.author = author;
  37.         this.price = price;
  38.     }
  39.     public String getName() {
  40.         return name;
  41.     }
  42.     public void setName(String name) {
  43.         this.name = name;
  44.     }
  45.     public String getAuthor() {
  46.         return author;
  47.     }
  48.     public void setAuthor(String author) {
  49.         this.author = author;
  50.     }
  51.     public double getPrice() {
  52.         return price;
  53.     }
  54.     public void setPrice(double price) {
  55.         this.price = price;
  56.     }
  57.     @Override
  58.     public String toString() {
  59.         return "Book{" +
  60.                 "name='" + name + '\'' +
  61.                 ", author='" + author + '\'' +
  62.                 ", price=" + price +
  63.                 '}';
  64.     }
  65. }
复制代码
快捷键:itit
快捷键:Ctrl+j    显示所有快捷键
4.集合增强

快捷键:集合名.for
5.List接口

List接口是Collection接口的子接口
5.1List接口的常用方法

<ol>boolean add(int index, E element)  将指定的元素插入此列表中的指定位置(可选操作)

boolean addAll(int index, Collection




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4