集合代码练习

关于尚硅谷JAVA系列课 集合的课后练习题的代码 class ADD { public static void main(String[] args) { Set treeSet = new TreeSet(); treeSet.add(new Student("张",21)); treeSet.add(new Student("张1",32)); treeSet.add(new Student("张1",42)); ... 阅读详情

目录

ArrayList代码

 HashSet 代码

TreeSet代码

HashMap代码 

 Properties代码


List集合代码:ArrayList与LinkedList

package com.java.jiheWork;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
/*
    1.1、每个集合对象的创建(new)
	1.2、向集合中添加元素
	1.3、从集合中取出某个元素
	1.4、遍历集合
 */
public class ArrayListTest {
    public static void main(String[] args) {
        // 创建集合对象
        ArrayList<String> list = new ArrayList<>();
        // 添加元素
        list.add("张三");
        list.add("李四");
        list.add("王五");
        // 从集合中取出某个元素
        // List集合有下标
        String firstElt = list.get(0);
        System.out.println(firstElt);
        System.out.println(list.get(2));
        System.out.println("-------------------------------");
        // 遍历(下标方式)
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("-------------------------------");
        // 遍历(迭代器方式,这个是通用的,所有Collection都能用)
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        System.out.println("-------------------------------");

        // while循环修改为for循环
        /*for(Iterator<String> it2 = list.iterator(); it2.hasNext(); ){
            System.out.println("====>" + it2.next());
        }*/

        // 遍历(foreach方式)
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-------------------------------");
        LinkedList<Student> students = new LinkedList<Student>();
        Student S1 = new Student(111,"张三");
        Student S2 = new Student(122,"李四");
        Student S3 = new Student(123,"王五");
        students.add(S1);
        students.add(S2);
        students.add(S3);
        Iterator<Student> it2 = students.iterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println("-------------------------------");
        for (Student ST:students) {
            System.out.println(ST);
        }
    }
}

 测试结果

 总结:ArrayList集合的底层是数组,可以通过下标直接查找数据,方便查找与修改。但是在增删元素时需要移动其他元素,效率较低。

LinkedList集合底层是链表,增删时不需要移动元素,方便增删。但是每次查找都要把前面的数据都过一遍,不方便查找。

 

 HashSet 代码

package com.bjpowernode.javase.review;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;
import java.util.Set;

/*
    1.1、每个集合对象的创建(new)
	1.2、向集合中添加元素
	1.3、从集合中取出某个元素
	1.4、遍历集合
	1.5、测试HashSet集合的特点:无序不可重复。
 */
public class HashSetTest {
    public static void main(String[] args) {
        //创建集合对象
        HashSet<String> set = new HashSet<>();
        //添加元素
        set.add("abc");
        set.add("def");
        set.add("king");
        set.add("abc");
        System.out.println(set.size());//3
        //这里我们发现set的元素个数只有3个,因为重复的元素无法添加到set集合当中
        System.out.println("------------------------");
        //遍历方法不能使用普通for循环,因为set集合没有下标
        //遍历方法1:迭代器方式
        Iterator<String> it = set.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("------------------------");
        //遍历方法2:foreach方式
        for (String s:set) {
            System.out.println(s);
        }
        System.out.println("------------------------");
        //创建Student类集合对象
        HashSet<Student> st = new HashSet<>();
        //创建Student对象,其中s3与s1重复
        Student s1 = new Student(111,"张三");
        Student s2 = new Student(222,"李四");
        Student s3 = new Student(111,"张三");
        st.add(s1);
        st.add(s2);
        st.add(s3);
        Iterator<Student> Stu = st.iterator();
        while (Stu.hasNext()){
            System.out.println(Stu.next());
        }
        System.out.println("------------------------");
            for (Student stu:st) {
                System.out.println(stu);
            }
        }
    }


class Student {
    int no;
    String name;

    public Student() {
    }

    public Student(int no, String name) {
        this.no = no;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "no=" + no +
                ", name='" + name + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return no == student.no &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(no, name);
    }
}

 HashSet集合的特点:底层是一个哈希表,无序不可重复。重复元素无法加入到集合中。

TreeSet代码

package com.bjpowernode.javase.review;

import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;

/*
    1.1、每个集合对象的创建(new)
	1.2、向集合中添加元素
	1.3、从集合中取出某个元素
	1.4、遍历集合
	1.5、测试TreeSet集合中的元素是可排序的。
	1.6、测试TreeSet集合中存储的类型是自定义的。
	1.7、测试实现Comparable接口的方式
	1.8、测试实现Comparator接口的方式(最好测试以下匿名内部类的方式)
 */
public class TreeSetTest {
    public static void main(String[] args) {
        // 集合的创建(可以测试以下TreeSet集合中存储String、Integer的。这些类都是SUN写好的。)
        //TreeSet<Integer> ts = new TreeSet<>();

        // 编写比较器可以改变规则。
        TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1; // 自动拆箱
            }
        });

        // 添加元素
        ts.add(1);
        ts.add(100);
        ts.add(10);
        ts.add(10);
        ts.add(10);
        ts.add(10);
        ts.add(0);

        // 遍历(迭代器方式)
        Iterator<Integer> it = ts.iterator();
        while(it.hasNext()) {
            Integer i = it.next();
            System.out.println(i);
        }

        // 遍历(foreach)
        for(Integer x : ts){
            System.out.println(x);
        }

        // TreeSet集合中存储自定义类型
        TreeSet<A> atree = new TreeSet<>();

        atree.add(new A(100));
        atree.add(new A(200));
        atree.add(new A(500));
        atree.add(new A(300));
        atree.add(new A(400));
        atree.add(new A(1000));

        // 遍历
        for(A a : atree){
            System.out.println(a);
        }

        //TreeSet<B> btree = new TreeSet<>(new BComparator());
        // 匿名内部类方式。
        TreeSet<B> btree = new TreeSet<>(new Comparator<B>() {
            @Override
            public int compare(B o1, B o2) {
                return o1.i - o2.i;
            }
        });

        btree.add(new B(500));
        btree.add(new B(100));
        btree.add(new B(200));
        btree.add(new B(600));
        btree.add(new B(300));
        btree.add(new B(50));

        for(B b : btree){
            System.out.println(b);
        }
    }
}

// 第一种方式:实现Comparable接口
class A implements Comparable<A>{
    int i;

    public A(int i){
        this.i = i;
    }

    @Override
    public String toString() {
        return "A{" +
                "i=" + i +
                '}';
    }

    @Override
    public int compareTo(A o) {
        //return this.i - o.i;
        return o.i - this.i;
    }
}

class B {
    int i;
    public B(int i){
        this.i = i;
    }

    @Override
    public String toString() {
        return "B{" +
                "i=" + i +
                '}';
    }
}

// 比较器
class BComparator implements Comparator<B> {

    @Override
    public int compare(B o1, B o2) {
        return o1.i - o2.i;
    }
}

HashMap代码 

package com.bjpowernode.javase.review;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
    1.1、每个集合对象的创建(new)
	1.2、向集合中添加元素
	1.3、从集合中取出某个元素
	1.4、遍历集合
 */
public class HashMapTest {
    public static void main(String[] args) {
        // 创建Map集合
        Map<Integer, String> map = new HashMap<>();
        // 添加元素
        map.put(1, "zhangsan");
        map.put(9, "lisi");
        map.put(10, "wangwu");
        map.put(2, "king");
        map.put(2, "simth"); // key重复value会覆盖。
        // 获取元素个数
        System.out.println(map.size());
        // 取key是2的元素
        System.out.println(map.get(2)); // smith
        // 遍历Map集合很重要,几种方式都要会。
        // 第一种方式:先获取所有的key,遍历key的时候,通过key获取value
        Set<Integer> keys = map.keySet();
        for(Integer key : keys){
            System.out.println(key + "=" + map.get(key));
        }

        // 第二种方式:是将Map集合转换成Set集合,Set集合中每一个元素是Node
        // 这个Node节点中有key和value
        Set<Map.Entry<Integer,String>> nodes = map.entrySet();
        for(Map.Entry<Integer,String> node : nodes){
            System.out.println(node.getKey() + "=" + node.getValue());
        }
    }
}

 Properties代码

package com.bjpowernode.javase.review;

import java.util.Properties;

public class PropertiesTest {
    public static void main(String[] args) {
        // 创建对象
        Properties pro = new Properties();
        // 存
        pro.setProperty("username", "test");
        pro.setProperty("password", "test123");
        // 取
        String username = pro.getProperty("username");
        String password = pro.getProperty("password");
        System.out.println(username);
        System.out.println(password);

    }
}

集合继承结构图 

JAVA100道习题集合 这是java习题练习题集合哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或 立即下载

相关推荐

Java集合 练习代码

Java 集合 集合.rar 集合.rar 集合.rar 集合.rar 集合.rar

Java中集合的基础知识与代码(超详细)

随风散->拉萨 java.util.Collection接口,所有的集合都实现自该接口,这个接口中定义了所有集合都必须。数组的工具类Arrays提供了一个静态方法asList,可以将一个数组转换为List集合。java.util.List线性表,是一个可以存放重复元素且有序的集合。集合与数组一样,可以保存一组元素,但是操作元素都封装成了方法。集合有多种不同的数据结构,可根据实际应用场景选择最优的结构。集合只能存放引用类型元素,并且存放的是元素的引用(地址)元素是否重复取决于集合自身的equals...

Jiang5106的博客 678

java集合代码

java集合,hashmap,hashtable

集合代码

存储数据. ​ 数组: 长度不可变,顺序,数据类型相同。 ​ length; ​ 下标。 Collection: 集合根接口 ​ 可重复的,不可重复的,有序的,无序的。 ​ 公共方法; ​ add();添加元素 ​ addAll(); ​ conta...

weixin_45289456的博客 627

集合合并代码

public static void main(String[] args) { // TODO Auto-generated method stub List lst1=new ArrayList(); List lst2=new ArrayList(); UserBean b1=new UserBean(); UserBean b2=new UserBean(); UserBean b3=new UserBean(); UserBean b4=new UserBean(); UserBean b11=new UserBean(); UserBean b12=new UserBean(); UserBean b13=new UserBean(); b1.setName("q"); b1.setJob("IT"); b2.setName("w"); b2.setJob("IT test"); b3.setName("t"); b3.setJob("IT"); b4.setName("q"); b4.setAge("20"); b11.setName("t"); b11.setAge("19"); b11.setJob("IT2"); b12.setName("O"); b13.setName("w"); b13.setAge("10"); b13.setJob("PM"); List lst=new ArrayList(); lst.addAll(lst1); lst.addAll(lst2); System.out.println("合并前值:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+lst.size()); printLst(lst); // UserBean bbb=null; for(int i=0;i<lst.size();i++) { UserBean b=(UserBean)lst.get(i); String s=b.getName(); for(int j=i+1;j<lst.size();j++) { UserBean bb=(UserBean)lst.get(j); String s1=bb.getName(); if(s.equals(s1)) { UserBean bbb=new UserBean(); bbb.setName(s1); if(s.equals("t")||s1.equals("t")) System.out.println("o在这!"); if(null!=b.getAge()&&!"".equals(b.getAge())) bbb.setAge(b.getAge()); if(null!=bb.getAge()&&!"".equals(bb.getAge())) bbb.setAge(bb.getAge()); if(null!=b.getJob()&&!"".equals(b.getJob())) bbb.setJob(b.getJob()); if(null!=bb.getJob()&&!"".equals(bb.getJob())) bbb.setJob(bb.getJob()); lst.remove(bb); lst.remove(i); lst.add(i, bbb); continue; } }

JAVA基础集合代码

集合List,Set,Stack,Map,Queue

集合类型数据操作练习题

根据输入的学号和平均成绩,按照平均成绩降序输出学号,如果平均成绩相同,按照输入的顺序输出。信息学院年终评定奖学金,需要对整个年级的学生按照平均分数进行排名。个出列,如此重复下去,直到所有的小孩都出列(总人数不足。个时,该小孩出列,然后从下一个小孩开始报数,仍是报到。个时将循环报数),求小孩出列的顺序。,编程求解两者的交集、并集和差集。个小孩围成一圈,给他们从。开始依次编号,现指定从第。

qq_63003916的博客 296

FineReport SQL查询分页

打开模板>模板web属性>分页预览设置,选择为该模板单独设置,将默认的工具栏按钮全部清除掉,然后依次添加两个自定义按钮,一个邮件按钮,两个自定义按钮,一个Word格式,一个PDF按钮。如下所示:注:使用具体格式按钮,如邮件、Word格式、PDF按钮是为了JS直接使用控件名称获取空间方便修改其内容;

lep的博客 2428

Java集合(例题及代码)

1.ArrayList集合 创建Student类,属性:学号 姓名 年龄 通过上面的字符串获取学号,姓名,年龄创建Student类,并将Student类的对象保存到一个ArrayList集合中, 以下完成每个步骤完成需要定义方法: 1.写出3种方式遍历集合中的数据(for;for each;iterator) 2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)...

lovejojo222的博客 1847

小米万兆路由器里的Docker安装可道云(Kodexplorer)私有网盘

小米2022年12月份发布了万兆路由器,里面可以使用Docker。 今天尝试在小米的万兆路由器里安装[可道云](http://kodcloud.com/)(Kodexplorer)私有网盘。

engchina的专栏 1万+

MobaXterm破解14个会话限制的保姆级教程(附Python环境配置指南)

本文提供了MobaXterm破解14个会话限制的详细教程,并深入讲解了如何配置稳定的Python环境以支持相关脚本运行。通过理解软件授权机制、安全实践步骤以及许可文件的应用,帮助用户解除会话数量限制,实现高效的远程服务器管理与自动化运维。

weixin_29211309的博客 1648

一文看懂java集合(图文详细)

一、Collection 接口的接口 对象的集合(单列集合)List 接口:元素按进入先后有序保存,有序,可重复LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全Vector 接口实现类 数组, 同步,线程安全Set 接口: 仅接收一次,无序,不可重复,并做内部排序HashSet 使用hash表(数组)存储元素LinkedHashSet 链表维护元素的插入次序。

丨康有为丨的博客 3537

8位可控加减法电路设计

一、设计要求   利用Logisim平台中现有运算部件构建一个8位可控加减法器,可支持八位加减法,利用已经封装全加器和逻辑门进行连接,要求实现相应的输出,判断是否溢出。 二、方案设计 实验原理: [A]补+[B]补 = [A+B]补(mod2^n+1)   公式1        [A-B]补 = [A]补+[-B]补(mod2^n+1)    公式2 FA为全加器,利用全加器实现加减法,难点在于实验减法,对输入的[Y]补各位取反加一即为[-Y]补,利用公式2,就可以将减法转化为加法再利用全加

qq_51700383的博客 1万+

Java中集合的使用——ArrayList的练习代码

文章目录第一部分基础代码1.1 创建```Person```类1.2 用数组来存储创建对象后的传递的数据1.3 用数组集合来存储对象2.1 ArrayList方法的使用2.2 集合的遍历2.3 包装类第二部分练习题目2.1 题目一2.2 题目二2.3 题目三2.4 题目四 第一部分基础代码 1.1 创建Person类 package Extends.demo07; /** * @program: Person * @description: * @author: OriginalCoder * @c

qq_44723773的博客 1358

SPMI协议学习总结

SPMI(System Power Management Interface)是由MIPI(Mobile Industry Processor Interface)联盟定义的一种硬件接口标准,它主要用于移动设备中,连接SoC(System on Chip)处理器系统的集成电源控制器与一个或多个电源管理IC(PMIC),以实现精确的电源管理

歌颂苦难的行为是无耻的; 1082

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1130

集合-综合代码练习

Collections.addAll(boyList,"张衡","范闲","千玺","成龙","张小天","杜甫","李白","宋永彰","宋元");Collections.addAll(list1,"海露","美意","芙蓉","清清","亦菲","莹莹","秣陵","圣鹤");Collections.addAll(list,"海露","美意","芙蓉","清清","亦菲","莹莹","秣陵","圣鹤");自动点名器2:班级里有N个学生,要求70%的概率随机到男生,30%的概率到女生。

2503_92462323的博客 711

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 462

Kotlin list,set,map集合练习代码

val list = listOf(1 ,2 ,3, 4, 5) //创建不可变list val mutableList = mutableListOf("s","b") //创建可变MutbaleList val set = setOf(1, 2, 3, 4, 5)//创建不可变Set val mutableSet = mutableSetOf("haha","wotainanle")//创建可变MutableSet val map = mapOf(1 to "a",2 to "b", 3 to "c

foxirensheng的博客 230

基于YOLOv8的建筑材料分类系统:从数据集构建到UI界面实现

建筑材料分类数据集需要包含各种常见建筑材料的图像,并对每种材料进行标注。砖块(Brick)混凝土(Concrete)钢筋(Rebar)木材(Wood)瓷砖(Tile)玻璃(Glass)钢材(Steel)塑料(Plastic)石膏板(Drywall)绝缘材料(Insulation)如果没有找到合适的公开数据集,可以构建自己的数据集。使用智能手机或专业相机拍摄各种建筑材料的照片确保在不同光照条件、角度和背景下拍摄每类材料至少收集300-500张图像。

YOLO 490

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java基础笔记23-集合练习题

Java基础笔记23-集合练习题 定义一个集合,实现去重复的功能 定义一个数组,数组中存放的是图片的后缀,给一个文件的名字,判断是否是图片 定义一个带有数字和字符串的集合,使用迭代器进行迭代,只输出字符串及其长度 代码示例: import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class Practice { public stati

w1226234212的博客 324

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

集合代码----小练习1

1 package com.mon11.day5; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 * 类说明 :List存储数据集合 8 * @author 作者 : chenyanlong 9 * @version 创建时间:2017年11月5日 10 *...

BigData 220

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

集合代码练习题

定义方法public void listToMap( )将List中Student元素封装到Map中,使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息并加入List;其中商品属性:编号,名称,单价,出版社;提示:向HashSet中添加自定义类的对象信息,需要重写hashCode和equals( ), 向TreeSet中添加自定义类的对象信息,需要实现Comparable接口,指定比较规则。其中商品属性:编号,名称,单价,出版社;

2401_88004177的博客 244

集合(集合的定义+综合练习,成员方法及代码演示等)

1,main方法中定义一个集合,存入三个用户对象。用户属性为:id,username,password2,要求:定义一个方法,根据id查找对应的用户信息。需求:定义一个集合,添加字符串,并进行遍历遍历格式参照:[元素1,元素2,元素3]。需求:定义一个集合,添加数字,并进行遍历遍历格式参照:[元素1,元素2,元素3]。需求:定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄。如果不存在,返回false。如果存在,返回true。

2202_76105015的博客 468

集合框架代码案例练习

【代码】集合框架代码案例练习。

qq_48818933的博客 382

Java集合类综合练习题

【代码】Java集合类综合练习题。

douyh的专栏 402
上一篇: String类的常用方法
下一篇: io流代码
continueLR
博客等级 码龄6年 9粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值