集合基础、集合的常用方法、集合的三种遍历

发布于:2023-02-08 ⋅ 阅读:(592) ⋅ 点赞:(0)

集合

  • 先说下关于集合的遍历

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("3");
        list.add("小明");
​
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
​
    }

这是关于迭代器的用法

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("3");
        list.add("小明");
        
        for (Object book:list) {
            System.out.println(book);
        }
    }

这是增强for循环

底层仍然是迭代器

  • 单列集合

 

  • 双列集合

 

Collections方法

package Collection;
​
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
​
public class CollectionDemo {
    public static void main(String[] args) {
        //add 添加
        List list = new ArrayList();
        list.add("嘉嘉");
        list.add(10);
        list.add(true);
        System.out.println("list ="+list);
        //remove 删除
        list.remove(2);
        System.out.println("list="+list);
​
        //contains 查找元素是否存在
        System.out.println(list.contains("嘉嘉"));
        //size:获取元素个数
        System.out.println(list.size());
        //isEmpty:判断是否为空
        System.out.println(list.isEmpty());
        //clear:清空
        list.clear();
        System.out.println(list);
        //addAll:添加多个元素
        List list2 = new ArrayList();
        list2.add("三国");
        list2.add(300);
        list.addAll(list2);
        System.out.println(list);
        //containsAll:查找多个元素是否都存在
        System.out.println(list.containsAll(list2));
        //removeAll:删除多个元素
        list.removeAll(list);
        System.out.println(list);
        System.out.println(list2);
    }
}

List 接口方法

public class List_ {
    public static void main(String[] args) {
        //1.List集合类中元素有序(即添加顺序和取出顺序一致,且可以重复)[案例]
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        System.out.println(list);
        //2.List集合中的每个元素都有其对应的索引顺序,即支持索引
        //索引是从零开始的
        System.out.println(list.get(3));
    }
}

以下是list方法

package list;
​
import java.util.ArrayList;
import java.util.List;
​
public class ListMethod {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        List list = new ArrayList();
        //下面是几种常用的方法
        list.add("AA");
        list.add("BB");
        //在索引等于1的地方插入CC
        list.add(1,"CC");
        System.out.println(list);
        //从index位置开始将else中的所有元素添加进来
        List list2 = new ArrayList();
        list2.add("DD");
        list2.add("EE");
        list2.add("FF");
        list.addAll(2,list2);
        System.out.println(list);
        //获取指定Index中的元素
        System.out.println(list.get(5));
        //返回obj在集合中首次出现的位置
        System.out.println(list.indexOf("DD"));
        //返回obj在集合中末次出现的位置
        System.out.println(list.lastIndexOf("BB"));
        //移除指定index位置中的元素,并返回此元素
        System.out.println(list.remove(3));
        System.out.println(list);
        //设置指定index位置的元素为ele,相当于替换
        list.set(2,"EE");
        System.out.println(list);
        //返回从fromIndex到toIndex位置的子集合
        //注意 它这是一个前闭区间后开区间的范围
        System.out.println(list.subList(1,3));
    }
}

小测试练练手

public class ListTest {
    public static void main(String[] args) {
        List list = new ArrayList();
        for (int i = 0; i <11 ; i++) {
            list.add("hello"+i);
            System.out.println(list);
        }
        list.add(1,"小于");
        list.get(4);
        list.remove(5);
        list.set(6,"老大");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }
    }
}

三种遍历方式

  • 如下图

 

​
public class ListFor {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("AA");
        list.add("BB");
        list.add("CC");
        System.out.println(list);
​
        //迭代器遍历
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }
        //增强For遍历
        for (Object o :list) {
            System.out.println(o);
        }
        //普通For循环遍历
        for (int i = 0; i <list.size() ; i++) {
            Object size = list.get(i);
            System.out.println(size);
        }
    }
}
​

排序练习的小测试练练手

要求如下图,回顾冒泡排序

 

public class ListTest2 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new Book("三体",100,"刘慈欣"));
        list.add(new Book("三体2",50,"刘慈欣"));
        list.add(new Book("三体3",160,"刘慈欣"));
​
            for (int j = 0; j < list.size(); j++) {
                for (int k = 0; k <list.size()-1-j ; k++) {
                    Book book1 = (Book) list.get(k);
                    Book book2 = (Book) list.get(k+1);
                    if(book1.getPrice()>book2.getPrice()){
                        list.set(j,book2);
                        list.set(j+1,book1);
                        for (Object o :list) {
                            System.out.println(o);
                        }
                        }
                    }
                }
        }
    }
class Book{
    String name;
    int price;
    String author;
​
    public Book(String name, int price, String author) {
        this.name = name;
        this.price = price;
        this.author = author;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public int getPrice() {
        return price;
    }
​
    public void setPrice(int price) {
        this.price = price;
    }
​
    public String getAuthor() {
        return author;
    }
​
    public void setAuthor(String author) {
        this.author = author;
    }
​
    @Override
    public String toString() {
        return
                "name='" + name + '\'' +
                ", price=" + price +
                ", author='" + author + '\'' 
                ;
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到