IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Java集合 -> 正文阅读

[系统运维]Java集合

package collection;

public class Collection01 {
    public static void main(String[] args) {
        /*
        为什么要集合?
        以前我们采用数组保存多个数据。
        数组的缺点:
        1.创建时就要指定长度,而且指定后,不可修改。
        2.保存的必须是同一类型的数据
        3.使用数组进行增加,删除元素的代码比较麻烦
        例如Person数组扩容代码:
        Person[] pers=new Person[1];
        Person[0]=new Person();
        //1.new 一个新的Person数组
          2.原数组元素拷贝到新数组
          3.新数组的新元素,赋值
          4.原数组指向新数组
          很麻烦吧。
        集合:多个数据集合在一起的数据结构或数据类型
        集合的好处:
        1.可以动态保存任意个多个对象,使用比较方便
        2.提供了一系列方便的操作对象的方法:add,remove,set,get(crud,增删改查)
        3.使用集合添加,删除新元素的示意代码简洁了。
        我们将要学习:
1.集合的框架体系

                               ArrayList实现类
                   List子接口   LinkedList实现类
                               Vector实现类
2.Collection接口

                                HashSet实现类
                    Set子接口    LinkedHashSet实现类
                                TreeSet


                                  HashMap
                                  HashTable
      3.Map接口                    LinkedHashMap
                                  TreeMap
                                  Properties
           4.Collections工具类
           

         Collection接口(实现子类都是单列集合)
         Map接口(实现子类都是双列接口)
         实列
         单列集合:
            ArrayList arrayList=new ArrayList();
            arrayList.add("数学“);
            arrayList.add("物理");
           双列集合
           HashMap hashMap=new HashMap();
           hashMap.put("M1","武汉");
           hashMap.put("M2","上海");

集合的框架体系:
Collection接口(单列集合)
在这里插入图片描述

Map接口(双列接口):

在这里插入图片描述

package collection;

import java.util.ArrayList;
import java.util.List;

public class Collection02 {
    public static void main(String[] args) {


        /*
        Collection接口和常用方法:
        public interface Collection<E> extends Iterable<E>

        1.Collection接口实现子类可以存放多个元素,每个元素可以是Object及其子类
        2.有些Collection实现类,可以存放重复的元素,有些不可以
        3.有些Collection实现类,有些是有序的(List),有些不是有序的(Set)
        4.Collection接口没有直接的实现子类,是通过他的子接口Set和List来实现的
        Collection接口常用方法(ArrayList演示):
        1.add:添加单个元素
        2.remove:删除指定元素
        3.contains:查找元素是否存在
        4.size获取元数个数
        5.isEmpty:判断是否为空
        6.clear:清空
        7.addAll:添加多个元素
        8.removeAll:删除多个元素
        8.containsAll:查找多个元素是否都存在

         */
        //以ArrayList演示Collection接口常用方法
        //1.add
         @SuppressWarnings({"all"})
        List l1=new ArrayList();
        l1.add("西游记");
        l1.add(10);
        l1.add(true);
        System.out.println("l1:"+l1);
        //2.remove
        l1.remove(0);
        l1.remove(true);
        System.out.println("l1:"+l1);
        //3.contains
        System.out.println(l1.contains(true));
        //4.size
        System.out.println(l1.size());
        //5.isEmpty
        System.out.println(l1.isEmpty());
        //6.clear
        l1.clear();
        System.out.println("l1:"+l1);
       //7.addAll
       List l2=new ArrayList();
       l2.add("三国演义");
       l2.add("水浒传");
        System.out.println("l2:"+l2);
        l1.addAll(l2);
        System.out.println("l1:"+l1);
        //8.removeAll
        l1.removeAll(l2);
        System.out.println("l1:"+l1);
        //9.containsAll
        System.out.println(l1.containsAll(l2));
    }
}


在这里插入图片描述
在这里插入图片描述

package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Collection12 {
    public static void main(String[] args) {
        /*
        IDEA 选中 所有字段ctrl+A 或ctrl选择部分生成构造器
        集合涉及到数据结构
        Collection接口遍历元素方式1—使用Iterator迭代器
        Iterator也是接口
        Iterable接口中有Iterator方法,返回一个Iterator对象
        1.Iterator对象为迭代器,主要用于遍历Collection集合中的元素
        2.所有实现了Collection接口的集合类都有一个iterator方法
        用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器
        3.Iterator结构:

        4.Iterator仅用于遍历集合,本身不存放数据

         */
        Collection col=new ArrayList();
          col.add(new Book("西游记","吴承恩",100));
          col.add(new Book("三国演义","吴贯中",98));
          col.add(new Book("红楼梦","曹雪芹",93));
          System.out.println("col:"+col);
        // 遍历集合
        //1.先得到col对于的构造器
        Iterator iterator=col.iterator();
        //2.使用while循环遍历
        while(iterator.hasNext()){//判断是否还有元素
            //返回下一个元素,类型是Object
            Object obj=iterator.next();
            System.out.println("obj:"+obj);//动态绑定
        }
        //此时iterator执行末尾
        //iterator.next() NoSuchElementException
        //快捷键生成while循环遍历集合 itit+回车
        //使用快捷键 ctrl+j 找到所有快捷键
      /*  while (iterator.hasNext()) {
            Object next =  iterator.next();
            
        }*/
        //希望再次遍历
         iterator=col.iterator();
        //2.使用while循环遍历
        while(iterator.hasNext()){//判断是否还有元素
            //返回下一个元素,类型是Object
            Object obj=iterator.next();
            System.out.println("obj:"+obj);//动态绑定
        }


    }
}
class Book{
    private String name;
    private String author;
    private double 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;
    }

    public Book(String name, String author, double price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }
}

package collection;

import java.util.ArrayList;
import java.util.Collection;

public class Collection03 {
    public static void main(String[] args) {
        //Collection接口的遍历方式2--for增强循环
        //增强for循环,可以代替iterator迭代器,底层就是iterator迭代器
        //本质一样,只能用于遍历集合或数组
        /*
        基本语法:
        for(元素类型 元素名:集合名或数组){
        访问元素
        }
         */
        Collection col=new ArrayList();
        col.add(new Book("西游记","吴承恩",100));
        col.add(new Book("三国演义","吴贯中",98));
        col.add(new Book("红楼梦","曹雪芹",93));
        for(Object o:col ){
            System.out.println("o:"+o);
        }
        //也可以用于数组
        int[] nums={2,3,4};
        for(int a:nums){
            System.out.println(a);
        }
    }
}

package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Collection04 {
    public static void main(String[] args) {
        /*
        测试题:
        1.创建3个Dog{name,age}对象,放到ArrayList中,赋值给List引用
        2,用迭代器和增强for两种方式来遍历
        3.重写Dog的toString方法,输出name和age
         */
        List l=new ArrayList();
        l.add(new Dog("小黄",19));
        l.add(new Dog("小黑",20));
        l.add(new Dog("小蓝",21));
        //迭代器
        Iterator iterator=l.iterator();
        while(iterator.hasNext()){
            Object o=iterator.next();
            System.out.println("o:"+o);
        }

        //增强for循环
        for(Object o:l){
            System.out.println("o:"+o);
        }

    }
}
class Dog{
    private String name;
    private int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
package collection;

import java.util.ArrayList;
import java.util.List;

public class Collection05 {
    public static void main(String[] args) {
    // List是Collection接口子接口
    // 1)List集合类中的元素有序(添加和取出顺序一致),且可重复
        List l=new ArrayList();
        l.add("哈哈");
        l.add("呵呵");
        l.add("呵呵");
        System.out.println("l:"+l);
        l.add("呵呵");
        System.out.println("l:"+l);
        //2.List集合中的每个元素都有其对应的顺序索引,即支持索引
        //3.List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素
        System.out.println(l.get(3));

        //4.List接口的实现类很多 常用的三个ArrayList,LinkedList,Vector

        //List接口常用方法
        //1.void add(int index,Object else);在index位置插入else元素
        l.add(0,"你好");//没有下标,默认在末尾
        //2.boolean addAll(int index,Collection elses);在index位置开始将elses所有元素插入
         List l2=new ArrayList();
        l.addAll(1,l2);//没有下标,默认在末尾
        //3. Object get(int index)//获取指定index位置的元素
        System.out.println(l.get(0));//查
        //4.int indexOf(Object obj)//返回ojb在集合中首次出现的位置
        System.out.println(l.indexOf("呵呵"));
        //5.int lastIndexOf(Object obj);返回obj在当前集合中末次出现的位置
        System.out.println(l.indexOf("呵呵"));
        //6.Object remove(int index);删除指定位置元素,并返回此元素
        l.remove(0);
        //7.Object set(int index,Object ele);设置指定位置元素为ele,相当于替换
        l.set(0,"你好");
        //8.List subList(int fromIndex,toIndex);返回指定范围的集合
        List returnList=l.subList(2,3);//(fromIndex,toIndex]
        System.out.println("returnList:"+returnList);

    }
}

package collection;

import java.util.ArrayList;
import java.util.List;

public class Collection06 {
    public static void main(String[] args) {
        /*
        添加10个以上的元素(比如String "hello"),在2号位插入一个元素,"韩顺平教育",
        获得第5个元素,删除第6六个元素,修改第7个元素,在使用迭代器遍历集合,要求:使用List的实现类ArrayList实现
         */
        List l=new ArrayList();
        l.add("你");
        l.add("是");
        l.add("最棒");
        l.add("的");
        l.add("请相信自己");
        l.add("加油");
        l.add("相信自己");
        l.add("奥里给");
        l.add("奥里给");
        l.add("奥里给");
        l.add("奥里给");
        l.add(2,"韩顺平教育");
        l.get(4);
        l.remove(5);
        for(Object o:l){
            System.out.println(o);
        }

    }
}

package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Collection07 {
    public static void main(String[] args) {
        /*
        ArrayList,LinkedList,Vector三种遍历方式
        1.迭代器
        2.增强for
        3.普通for循环
         */
        List l=new ArrayList();
        l.add("jack");
        l.add("helo");
        l.add("sdf");

        //1.迭代器
        Iterator iterator=l.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println("next:"+next);
        }

        //2.增强for
        for(Object o:l){
            System.out.println("o:"+o);
        }

        //3.普通for循环
        for(int i=0;i<l.size();i++){
             System.out.println("对象:"+l.get(i));
        }
      //将上面的ArrayList,Vector都可以
    }
}

package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Collection08 {
    public static void main(String[] args) {
        /*
        使用List的实现类添加三本图书,并遍历,打印效果如图
        名称:xx  价格:xx     作者:xx
        名称:xx   价格:xx    作者:xx
        名称:xx   价格:xx    作者:xx
         要求
         1)按价格排序,从低到高(使用冒泡排序)
         2)要求使用ArrayList,LinkedList,Vector三种集合实现
         */
        List l=new ArrayList();
        l.add(new Book1("三国演义",200,"罗贯中"));
        l.add(new Book1("水浒传",190,"施耐庵"));
        l.add(new Book1("西游记",210,"吴承恩"));
        sort(l);
        Iterator iterator=l.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }
    }
    public static void sort(List l){
        int listSize=l.size();
        for(int i=0;i<listSize-1;i++){
            for(int j=0;j<listSize-i-1;j++){
                Book1 book1=(Book1)l.get(j);
                Book1 book2=(Book1)l.get(j+1);
                if(book1.getPrice()>book2.getPrice()){
                    l.set(j,book2);
                    l.set(j+1,book1);
                }
            }
        }
    }
}
class Book1{
    private String name;
    private double price;
    private String author;

    public Book1(String name, double 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 double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return "名称:"+name+"\t"+"价格:"+price+"\t"+author;
    }
}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 18:06:52  更:2021-12-16 18:08:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:46:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码