集合框架

集合框架包含的内容:

集合框架的接口:

List接口实现类

ArrayList

 1 package com.jredu.ch01;
 3 import java.util.ArrayList;
 5 import java.util.List;
 7 public class ArrayListTest {
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         // 创建一个list集合对象
12         // list是有序但不唯一的一组集合数据
13         List list = new ArrayList<>();
14         // 开始的集合长度为0
15         // list.size() 返回给定集合的长度
16         System.out.println("添加数据前的集合长度" + list.size());
17         // list.add("aaaa");
18         // list.add("dddd");
19         // list.add("cccc");
20         // list.add("aaaa");
21         list.add(1);
22         list.add("two");
23         list.add('c'); // 字符型
24         list.add(true);
25         // list.add(index, element);
26         // 在指定索引处添加了一个元素,但索引位置必须介于0——集合的元素个数之间
27         list.add(1, "啦啦啦");
28         System.out.println(list);
29         System.out.println("添加数据后的集合长度" + list.size());
30         // get方法通过传入指定元素的索引获取该元素,取出来的类型Object类型
31         // 使用前需要进行类型强制转换
32         // 索引范围内是0——集合长度减一 范围
33         System.out.println(list.get(3));// 因为add添加,要+1得到c
34     }
35 }
 1 package com.jredu.ch01;
 3 import java.util.ArrayList;
 5 public class ArrayListTest2 {
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         ArrayList list = new ArrayList<>();
10         list.add(1);
11         list.add(2);
12         list.add(3);
13         list.add(2);
14         // contains判断列表中是否存在该元素
15         if (list.contains(3)) {
16             System.out.println("找到了");
17         } else {
18             System.out.println("未找到");
19         }
20         // remove在列表中删除指定元素,删除成功返回true,失败返回false
21         // 如果有多个元素值相同,只删掉第一个
22         if (list.remove(Integer.valueOf(2))) { // 包装类
23             System.out.println("删除成功");
24         } else {
25             System.out.println("删除失败");
26         }
27         System.out.println(list);
28         // 删除的是对应下标的那个元素的值
29         // list.remove(1);
30         System.out.println(list.remove(2));
32     }
34 }
 1 package com.jredu.ch03;
 3 import java.util.ArrayList;
 4 import java.util.Arrays;
 6 /**
 7  * list扩展:常见的几个扩展方法11  */
12 public class ListDemo {
13     public static void main(String[] args) {
14         ArrayList list = new ArrayList<>();
15         ArrayList list2 = new ArrayList<>();
16         ArrayList list3 = new ArrayList<>();
17         list.add(1);
18         list.add(2);
19         list.add(3);
20         list2.add(1);
21         list2.add(2);
22         list2.add(3);
23         // 向集合中添加一个集合
24         list3.addAll(list);
25         list3.addAll(list2);
26         // System.out.println(list);
27         // System.out.println(list2);
28         // System.out.println(list3);
30         ArrayList list4 = new ArrayList<>();// ArrayList list4 =null;
31         list4.add(1);
32         // 判断集合中是否有元素
33         if (list4 != null && !list4.isEmpty()) {
34             System.out.println("集合中有数据");
35         } else {
36             System.out.println("集合为空");
37         }
39         ArrayList list5 = new ArrayList<>();
40         // Object [] o={1,2,3};
41         list5.add(1);
42         list5.add(2);
43         list5.add(3);
44         // 数组和集合相互转换
45         // 集合转数组
46         Object[] o = list5.toArray();
47         System.out.println(Arrays.toString(o));
48         // 数组转集合
49         ArrayList list6 = new ArrayList<>();
50         list6.addAll(Arrays.asList(o));
51         System.out.println(list6);
53         // for(int i=0;i<list.size();i++){
54         // list2.add(list.get(i));
55         // }
56         // System.out.println(list2);
57     }
58 }

LinkedList

 1 package com.jredu.ch01;
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import java.util.Random;
 6 import java.util.Scanner;
 8 public class Random1 {
10     //存储所有的姓名
11     List list=new ArrayList<>();
12     //接收控制台信息
13     Scanner in=new Scanner(System.in);
14     //随机数
15     Random r=new Random();
17     public void addNames() {
18         //循环添加姓名
19         while(true) {
20             //提示信息
21             System.out.print("请输入姓名");
22             //接收姓名
23             list.add(in.next());
24             //提示信息
25             System.out.print("是否继续添加?(y/n)");
26             String code=in.next();
27             if(!code.equals("y")) {
28                 break;
29             }
30         }
31         System.out.println(list);
32     }   
34     public void getRandomName() {
35         while(true){
36             //得到随机数
37             int i=r.nextInt(list.size());
38             //得到对应的名字
39             System.out.println(list.get(i));
40             System.out.print("是否继续点名?(y/n)");
41             String code=in.next();
42             //判断如果不是y,就退出
43             if(!code.equals("y")) {
44                 return;
45             }
46         }
47     }
49     public static void main(String[] args) {
50         Random1 test=new Random1();
51         //添加姓名
52         test.addNames();
53         //获得随机的姓名
54         test.getRandomName();
55     } 
58 }
 1 package com.jredu.ch02;
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import java.util.Scanner;
 7 public class StudentManager {
 9     ArrayList list = new ArrayList<>();
10     Scanner sc = new Scanner(System.in);
12     public void addStu() {
13         System.out.println("**********录入学生信息,当录入学生的编号为0时结束录入************");
14         while (true) {
15             System.out.print("请输入学员学号:");
16             int num = sc.nextInt();
17             Student stu = null; 
18             if (num == 0) {
19                 System.out.println("结束录入!");
20                 show();
21                 break;
22             } else {
23                 System.out.print("请输入学员姓名:");
24                 String name = sc.next();
25                 System.out.print("请输入学员年龄:");
26                 int age = sc.nextInt();
27                 stu = new Student(num, name, age);
28                 list.add(stu);
29             }
30         }
32     }
34     public void show() {
35         System.out.println("学员的信息如下:");
36         System.out.println("学号\t姓名\t年龄");
37         // Student s = null;
38         // for (int i = 0; i < list.size(); i++) {
39         // s = (Student) list.get(i);
40         // System.out.println(s.getId() + "\t" + s.getName() + "\t" +
41         // s.getAge());
42         // }
43         for (Object o : list) {
44             Student stu = (Student) o;
45             System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge());
46         }
48     }
50     public void update() {
51         System.out.print("请输入需要修改的学员学号:");
52         int num = sc.nextInt();
53         for (int i = 0; i < list.size(); i++) {
54             Student stu = (Student) list.get(i);
55             if (stu.getId() == num) {
56                 System.out.print("请输入需要修改的学员姓名:");
57                 stu.setName(sc.next());
58                 System.out.print("请输入需要修改的学员年龄:");
59                 stu.setAge(sc.nextInt());
60                 System.out.println("修改成功");
61                 // 展示数据
62                 show();
63                 return;// 跳出方法
64             }
65         }
66         System.out.println("没有该学员");
67     }
69     public void remove() {
70         System.out.print("请输入要删除的编号");
71         int no = sc.nextInt();
72         for (int i = 0; i < list.size(); i++) {
73             if (no == ((Student) list.get(i)).getId()) {
74                 list.remove(i);
75                 System.out.println("删除成功");
76                 show();
77                 return;
78             }
79         }
80         System.out.println("对不起,没有此学员");
81     }
83     public static void main(String[] args) {
84         StudentManager sm = new StudentManager();
85         sm.addStu();
86         sm.update();
87         sm.remove();
88     }
90 }

迭代器Iterator

如何遍历List集合?

1、通过for循环和get()方法配合实现遍历

2、通过迭代器Iterator实现遍历

所有集合接口和类都没有提供相应遍历的方法,而是由Iterator实现集合遍历

Collection接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现遍历

boolean hasNext():判断是否存在另一个可访问的元素

Object next()返回要访问的下一个元素

 1 package com.jredu.ch03;
 3 import java.util.Iterator;
 4 import java.util.LinkedList;
 6 public class IteratorTest {
 7     public static void main(String[] args) {
 8         LinkedList list=new LinkedList<>();
 9         list.add(1);
10         list.add(2);
11         list.add(3);
12         //获取集合中的每一个元素
13         //使用迭代
14         Iterator iter=list.iterator();
15         //判断是否存在下一个元素
16         while(iter.hasNext()){
17             //获取下一个元素
18             System.out.print(iter.next()+" ");        
19         }
20         System.out.println("\n***********");    
21         //for循环
22         for(int i=0;i<list.size();i++){
23             System.out.print(list.get(i)+" ");
24         }
25         System.out.println("\n***********");
26         //foreach循环
27         for(Object o:list){
28             System.out.print(o+" ");
29         }
30 //        for(int i=0;i<5;i++){
31 //            list.add(new Student(i,"name"+i,i));
32 //        }
33 //        Iterator iter=list.iterator();
34 //        while(iter.hasNext()){
35 //            Student stu=(Student)iter.next();
36 //            System.out.println(stu.getId());
37 //            System.out.println(stu.getName());
38 //            System.out.println(stu.getAge());            
39 //        }    
40     }
41 }

HashSet

 1 package com.jredu.ch03;
 2 import java.util.HashSet;
 3 import java.util.Iterator;
 4 public class SetTest {
 5     public static void main(String[] args) {
 6         HashSet hs=new HashSet<>();
 7         //唯一
 8 //        hs.add(1);
 9 //        hs.add(2);
10 //        hs.add(1);
11 //        hs.add(true);
12 //        hs.add(true);
13 //        Dog dog=new Dog("陈", "单身猫");
14 //        Dog dog2=new Dog("周", "单身猫");
15 //        hs.add(dog2);
16 //        hs.add(dog);
17 //        System.out.println(hs.size());
18         //无序
19         hs.add(8);
20         hs.add(5);
21         hs.add(3);
22         hs.add(1);
23         Iterator iter=hs.iterator();
24         while(iter.hasNext()){
25             int i=(int)iter.next();
26             System.out.println(i);
27         } 
29     }
30 }

HashMap

 1 package com.jredu.ch04;
 3 import java.util.Collection;
 4 import java.util.HashMap;
 5 import java.util.Iterator;
 6 import java.util.Set;
 7 import java.util.Map.Entry;
 9 public class Ch01 {
11     public static void main(String[] args) {
12         HashMap map = new HashMap<>();
13         map.put(1, "哈哈");
14         map.put(2, "吼吼");
15         map.put(3, "呜呜");
16         // keySet获得键集合
17         Set set = map.keySet();
18         Iterator iter = set.iterator();
19         while (iter.hasNext()) {
20             int i = (int) iter.next();
21             System.out.println(i);
22         }
23         // values获得值集合
24         Collection col = map.values();
25         Iterator iter1 = col.iterator();
26         while (iter1.hasNext()) {
27             String str = (String) iter1.next();
28             System.out.println(str);
29         }
30         // entrySet获得键和值的集合
31         Set entrySet = map.entrySet();
32         Iterator iter2 = entrySet.iterator();
33         while (iter2.hasNext()) {
34             Entry entry = (Entry) iter2.next();
36             System.out.println(entry.getKey());
37             System.out.println(entry.getValue());
38         }
39     }
41 }

 

package com.jredu.ch04;
public class Goods {  private String name;private double price;private int count;  public Goods(String name, double price, int count) {super();this.name = name;this.price = price;this.count = count;}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 int getCount() {return count;}public void setCount(int count) {this.count = count;}@Overridepublic String toString() {return "Goods [name=" + name + ", price=" + price + ", count=" + count + "]";}
}package com.jredu.ch04;
import java.util.Comparator;
/*** 数量比较*/
public class CountComparator implements Comparator{@Overridepublic int compare(Object o1, Object o2) {// TODO Auto-generated method stubGoods g1=(Goods) o1;Goods g2=(Goods) o2;//按照数量规则进行比较判断if(g1.getCount()>=g2.getCount()) {//满足规则返回1return 1;}return -1;}
}package com.jredu.ch04;
import java.util.ArrayList;
import java.util.Collections;
public class GoodsManager {ArrayList list=new ArrayList<>();public static final int PRICE=1;public static final int COUNT=2;public GoodsManager() {list.add(new Goods("手机", 999, 2));list.add(new Goods("电视", 4000, 5));list.add(new Goods("笔记本电脑", 6000, 10));list.add(new Goods("鼠标", 50, 30));list.add(new Goods("键盘", 40, 7));}    public void sort(int type) {//价格排序/数量排序switch (type) {case PRICE:Collections.sort(list,new PriceComparator());
//            Collections.reverse(list);
            show();break;case COUNT:
//            Collections.sort(list,new CountComparator());
//            Collections.reverse(list);
            show();break;}}    public void show() {System.out.println(list);}public static void main(String[] args) {GoodsManager gm=new GoodsManager();gm.sort(GoodsManager.PRICE);
//        gm.sort(GoodsManager.COUNT);
    }
}

 

转载于:https://www.cnblogs.com/a5513633/p/6719357.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的类型安全的空集合

我之前曾在Java Collections类的实用程序上进行过博客撰写&#xff0c;并且特别地在使用Usings Collections Methods上的博客emptyList&#xff08;&#xff09;&#xff0c;emptyMap&#xff08;&#xff09;和emptySet&#xff08;&#xff09;上进行了博客撰写。 在本文中&a…

剑指offer二十二之从上往下打印二叉树

一、题目 从上往下打印出二叉树的每个节点&#xff0c;同层节点从左至右打印。 二、思路 二叉树的层次遍历&#xff0c;可以借助队列实现。具体思路详见注释。 三、代码 import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode {int val 0;Tree…

arduino i2c 如何写16位寄存器_arduino入门

硬件&#xff1a;Arduino Uno是基于ATmega328P(数据表)的微控制器板。它具有14个数字输入/输出引脚(其中6个可用作PWM输出)&#xff0c;6个模拟输入&#xff0c;工作电压5v&#xff0c;输入电压7-12v。串行&#xff1a;0(RX)和1(TX)用于接收(RX)和发送(TX)TTL串行数据。这些引脚…

mysql序列号生成_一文看懂mycat的6种全局序列号实现方式

概述在实现分库分表的情况下&#xff0c;数据库自增主键已无法保证自增主键的全局唯一。为此&#xff0c;MyCat 提供了全局sequence&#xff0c;并且提供了包含本地配置和数据库配置等多种实现方式。下面对这几种实现方式做一下介绍。1、本地文件方式原理&#xff1a;此方式 My…

android.graphics.Paint方法setXfermode (Xfermode x...

[java] view plaincopymPaint new Paint(); mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SCREEN)); 常见的Xfermode&#xff08;SRC为原图&#xff0c;DST为目标图&#xff09;&#xff0c;把代码中的SRC_IN换成下图指定的模式就会出现对应的效果图…

从零开始的全栈工程师——html篇1

全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言&#xff0c;标记通用标记语言下的一个应用。) “超文本”就是指页面内可以包含图片、链接&#xff0c;甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分&am…

苹果mp3软件_优秀的Apple音乐转换器,将任何iTunes M4P,AAX,AA转换为MP3

Macsome iTunes Converter是一款优秀的音频转换工具&#xff0c;这款音频转换软件能够帮助大家快速进行音频格式转换&#xff0c;使得您可以自由的播放和分享自己喜爱的音频文件。同时这款软件与大多数音频转换软件一样&#xff0c;将受到保护DRM的Apple音乐转换转换成MP3, AAC…

虚幻4毛发系统_虚幻引擎复活!苹果与Epic对决,有哪些游戏险些中枪?

最近&#xff0c;苹果和Epic的官司闹得沸沸扬扬。随着Epic旗下热门手游《堡垒之夜》遭苹果火速下架&#xff0c;两大巨头之间的冲突愈演愈烈。苹果似乎并不满足于此&#xff0c;由于Epic公开违反自家规定&#xff0c;苹果计划进一步封禁Epic维护虚幻引擎的开发者账户&#xff0…

01-JAVA语言基础

1.设计思想&#xff1a; 先以字符串的形式输入两个数字&#xff0c;然后将他们转化为int类型&#xff0c;再对两数进行相加&#xff0c;最后输出结果。 2.程序流程图&#xff1a; 3.源程序代码&#xff1a; import java.util.Scanner;public class Addition2 {public static vo…

php签名墙,肺功能检查质量控制网

2017年12月2日&#xff0c;由中华医学会呼吸病学分会/儿科分会、国家呼吸系统疾病临床医学研究中心、国家呼吸疾病医疗质量控制中心、中国肺功能联盟、中国儿童肺功能协作组主办&#xff0c;浙江省中医院承办的"2017年中国肺功能检查规范化培训及应用推广学习班暨肺功能检…

餐饮水单打印软件_开发一款餐饮手机app系统软件什么价格?有哪些方面需要考虑?...

开发一款餐饮手机app系统软件什么价格&#xff1f;有哪些方面需要考虑&#xff1f;近年来&#xff0c;餐饮类的APP如雨后春笋般快速增长&#xff0c;无论是上档次的酒店&#xff0c;还是各大餐厅&#xff0c;都有各自的专属APP。餐饮APP的开发能让大型酒店/餐厅获得更多盈利、销…

Spring-framework应用程序启动loadtime源码分析笔记(二)——@Transactional

Transactional标识类或方法&#xff0c;使方法被执行时使用事务方式执行&#xff0c;这里只讨论PROXY方法增强方法。使用EnableTransactionManagement&#xff0c;默认modelAdviceMode.PROXY&#xff0c;通过Import(TransactionManagementConfigurationSelector.class)来判断在…

具有Spring的简单工作流引擎

几个月前&#xff0c;在处理一个公司项目时&#xff0c;我们需要开发REST服务&#xff0c;该服务用于根据客户端应用程序发送的数据发送电子邮件。 在开发此服务期间&#xff0c;我们决定创建简单的工作流引擎&#xff0c;该引擎将为发送电子邮件收费&#xff0c;但该引擎也可用…

TypeScript学习笔记归纳(持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里&#xff1f; 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释&#xff1f; 2、类型系统核心 - 常用类型 1&#xff09; 基本类型&#xff0…

组态王 6.55 启停plc_永宏PLC在远程控制系统中的应用

一、行业介绍本远程控制系统是给石药集团的下属子公司设计的一个控制方案。主要是配套GPRS-DTU产品实现远程plc与plc之间的数据共享。从而达到远程无线数据写入控制和读取监控的目的。二、客户需求(1) 客户可以在监控室控制至少2-3公里外的井上两个水泵的启动和停止。(2) 客户可…

Vue表格中,对数据进行转换、处理

众所周知&#xff0c;后端从Mysql取出的数据&#xff0c;一般是很难单独处理某一个Key的数据的&#xff08;需要处理的话&#xff0c;可能会浪费大量的性能。而且对页面加载时间有很大的影响&#xff09;&#xff0c;所以&#xff0c;从数据库取出的数据。只能由前端进行处理。…

Java应用程序中的SQL注入

在本文中&#xff0c;我们将讨论什么是SQL注入攻击。 以及它如何影响任何Web应用程序使用后端数据库。 在这里&#xff0c;我专注于Java Web应用程序。 开放Web应用程序安全项目&#xff08;OWAP&#xff09;列出了SQL注入是Web应用程序的主要漏洞攻击。 黑客将Web请求中的SQL代…

bluetooth射频已关闭请打开bluetooth射频_希杰大功率射频放大器烧了维修诊断步骤...

如果电阻值过低&#xff0c;说明电源内部存在短路&#xff0c;正常时其阻值应能达到100千欧以上;电容器应能够充放电&#xff0c;如果损坏&#xff0c;则表现为AC电源线两端阻值低&#xff0c;呈短路状态&#xff0c;否则可能是开关管击穿。然后检查直流输出部分脱开负载&#…

java中整数如何表示,在Java中如何在位级别上内部表示整数?

慕瓜9086354Java整数为32位&#xff0c;并且总是带符号的。这意味着&#xff0c;最高有效位(MSB)用作符号位。用an表示的整数int不过是位的加权和。权重分配如下&#xff1a;Bit# Weight31 -2^3130 2^3029 2^29... ...2 2^21 2^10 …

three.js制作3d模型工具_3D打印模型打磨抛光常用工具

对于追求更好模型品质的人来说&#xff0c;对3D打印模型进行后处理工作是必不可少的&#xff0c;而后处理&#xff0c;首要的便是对模型进行打磨、抛光&#xff0c;将不属于模型的耗材去除&#xff0c;提高表面光洁度。在此工作中&#xff0c;我们需要用到很多工具&#xff0c;…