Java 集合框架(List、Set、Map、Iterator、Stack、Properties)

文章目录

    • 1. ArrayList
    • 2. LinkedList
    • 3. HashSet
    • 4. TreeSet
    • 5. Iterator、ListIterator
    • 6. HashMap
    • 7. TreeMap
    • 8. Stack
    • 9. Properties 类
      • 读写简单 数据库

相关文献:https://www.runoob.com/java/java-collections.html

1. ArrayList

  • 类似动态数组
		ArrayList al = new ArrayList();System.out.println("al 的初始大小:" + al.size());// al 的初始大小:0al.add("C");al.add("A");al.add("E");al.add("B");al.add("D");al.add("F");al.add(1,"A2");System.out.println("al size: " + al.size());// al size: 7System.out.println("al 的内容:" + al);// al 的内容:[C, A2, A, E, B, D, F]al.remove("F");al.remove(2);System.out.println("al size: " + al.size());// al size: 5System.out.println("al 的内容:" + al);// al 的内容:[C, A2, E, B, D]ArrayList al1 = new ArrayList();al1.add(1);al1.add(2);al1.add(3);al1.add(4);System.out.println("al1 的内容:" + al1);// al1 的内容:[1, 2, 3, 4]Object o[] = al1.toArray();int sum = 0;for(int i = 0; i < o.length; ++i)sum += ((Integer)o[i]).intValue();System.out.println("sum: " + sum); // sum: 10

2. LinkedList

  • 链表
		LinkedList ll = new LinkedList();ll.add("F");ll.add("B");ll.add("D");ll.add("E");ll.add("C");ll.addLast("Z");ll.addFirst("A");ll.add(1, 1);System.out.println(ll);// [A, 1, F, B, D, E, C, Z]ll.remove("F");ll.remove(2);System.out.println(ll);// [A, 1, D, E, C, Z]ll.removeFirst();ll.removeLast();System.out.println(ll);// [1, D, E, C]ll.set(2, "changed");System.out.println(ll);// [1, D, changed, C]

3. HashSet

  • 哈希集合,无序
		HashSet hs = new HashSet();hs.add("A");hs.add("B");hs.add("C");hs.add(1);System.out.println(hs);// [A, 1, B, C] 无序

4. TreeSet

  • 树set,有序
		TreeSet ts = new TreeSet();ts.add("C");ts.add("B");ts.add("D");ts.add("A");ts.add("Aa");System.out.println(ts);// [A, Aa, B, C, D] 有序

5. Iterator、ListIterator

  • ListIterator 可以修改元素,可以双向遍历,是 Iterator 的扩展
		System.out.println(al);// [C, A2, E, B, D]Iterator it = al.iterator();while (it.hasNext()){Object obj = it.next();System.out.print(" "+ obj);} // 使用 iterator 遍历//  C A2 E B DSystem.out.println();ListIterator lit = al.listIterator();while(lit.hasNext()){Object obj = lit.next();lit.set(obj+"*");}System.out.println("打印修改后的内容:");it = al.iterator();while (it.hasNext()){Object obj = it.next();System.out.print(" "+ obj);} // C* A2* E* B* D*System.out.println();System.out.println("逆序输出:");while(lit.hasPrevious()){Object obj = lit.previous();System.out.print(" "+ obj);} // D* B* E* A2* C*System.out.println();

6. HashMap

		// HashMapHashMap hm = new HashMap();hm.put("Michael", 18);hm.put("Ming", 19);Set set = hm.entrySet();Iterator i = set.iterator();while(i.hasNext()){Map.Entry me = (Map.Entry) i.next();System.out.print(me.getKey() + ":");System.out.println(me.getValue());}int age = ((Integer)hm.get("Michael")).intValue();hm.put("Michael", age+2);i = set.iterator();while(i.hasNext()){Map.Entry me = (Map.Entry) i.next();System.out.print(me.getKey() + ":");System.out.println(me.getValue());}

输出:

Ming:19
Michael:18
Ming:19
Michael:20

7. TreeMap

		// TreeMapTreeMap tm = new TreeMap();tm.put(18, "Michael");tm.put(19, "Ming");tm.put(0, "Java");// valuesCollection col = tm.values();Iterator it1 = col.iterator();while(it1.hasNext()){System.out.println(it1.next());}// keySetCollection col1 = tm.keySet();Iterator it2 = col1.iterator();while(it2.hasNext()){System.out.println(it2.next());}// entrySet, K V 对Collection col2 = tm.entrySet();Iterator it3 = col2.iterator();while(it3.hasNext()){System.out.println(it3.next());}

输出:

Java
Michael
Ming
0
18
19
0=Java
18=Michael
19=Ming

8. Stack

  • Stack 继承于 Vector,Vector 与 ArrayList 类似
class StackDemo{static void showpush(Stack st, int a){st.push(a);System.out.println("入栈:" + a);System.out.println(st);}static void showpop(Stack st){Integer a = (Integer) st.pop();System.out.println("出栈:" + a);System.out.println(st);}public static void main(String [] args){Stack st = new Stack();System.out.println(st);showpush(st,2);showpush(st,4);showpush(st,1);showpop(st);showpop(st);showpop(st);try{showpop(st);//空了,异常}catch (EmptyStackException e){System.out.println("异常:" + e);}}
}

输出:

[]
入栈:2
[2]
入栈:4
[2, 4]
入栈:1
[2, 4, 1]
出栈:1
[2, 4]
出栈:4
[2]
出栈:2
[]
异常:java.util.EmptyStackException

9. Properties 类

		// Properties : k v 都是字符串的 HashtableProperties capitals = new Properties();capitals.put("中国", "北京");capitals.put("日本", "东京");// capitals.put("美国", "华盛顿");Set states = capitals.keySet();String country;Iterator it4 = states.iterator();while(it4.hasNext()){country = (String) it4.next();System.out.println(country + " : " + capitals.getProperty(country));}String str = capitals.getProperty("美国", "not found");//若没有key,返回默认值 not foundSystem.out.println(str);

输出:

中国 : 北京
日本 : 东京
not found

读写简单 数据库

  • 特别适合做简单数据库
class PropertiesFile{public static void main(String [] args){Properties settings = new Properties();try{settings.load(new FileInputStream("./count.txt"));}catch (Exception e){settings.setProperty("count", new Integer(0).toString());//没有文件就从0开始计数}int c = Integer.parseInt(settings.getProperty("count"))+1;System.out.println("这是第" + c + "次使用本程序!");settings.put("count", new Integer(c).toString());try{settings.store(new FileOutputStream("./count.txt"), "存储中");}catch (Exception e){System.out.println(e.getMessage());}}
}

输出:

这是第1次使用本程序!

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

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

相关文章

js获取当前url_javascript如何获取当前URL的主机名?

在javascript中可以使用location对象的hostname属性或者host属性来获取当前URL的主机名&#xff0c;下面本篇文章就来带大家认识这两种属性&#xff0c;希望对大家有所帮助。使用location hostname属性location hostname属性是用于返回当前URL的主机名&#xff1b;它会返回一个…

java访问数据库方式_java数据库访问(二)—JDBC方式(配合连接池)

上文记录了最基础的JDBC连接数据库的方法&#xff0c;但能看出一个问题&#xff0c;就是要不断的重复去创建connection和关闭connection&#xff0c;如果在对数据库的访问比较频繁的情况下&#xff0c;这种处理方式方式在性能方面是不合适的&#xff0c;下面使用JDBC配合数据库…

超频真的不难!G3258超频4.5GHz全攻略

奔腾G3258搭配主板详解【pconline 应用】目前DIY市场上最火热的装机组合莫过于奔腾20周年纪念版处理器G3258搭配B85芯片组主板&#xff0c;只要通过适当的超频&#xff0c;相对较低投入也能来不错的性能体验&#xff0c;因此在奔腾G3258还没上市时&#xff0c;业界对其充满期待…

Java入门到精通——基础篇之static关键字

一、概述static 关键字是声明静态变量&#xff0c;静态方法用的。static的含义是属于类且不属于类对象的变量和函数。二、static的产生。在创建对象的时候除非用new创建那个类的对象&#xff0c;否则实际上并没有获得任何对象只有当执行new来创建对象时数据存储空间才被分配&am…

Java 给编译器看的注释--Annotation

文章目录1. 系统内建的Annotation2. 自定义Annotation3. Retention4. 反射 与 Annotation5. Target6. Documented7. Inherited将配置直接写入到程序之中&#xff1a;Annotation 1. 系统内建的Annotation Override&#xff0c;Deprecated&#xff0c;SuppressWarnings 等 cla…

kafka启动_Kafka安装部署——单节点

1.1 Kafka的单节点部署在实际的工作中&#xff0c;经常使用Kafka作为消息队列&#xff0c;然而并不是每一种业务场景都需要集群版的Kafka&#xff0c;有时单节点的Kafka就能满足了业务的需求。以下就是单节点kafka的部署流程&#xff1a;1.1.1 安装包下载从Kafka官网下载最…

Maven 入门 (1)—— 安装

Maven 入门 &#xff08;1&#xff09;—— 安装 http://blog.csdn.net/kakashi8841/article/details/17371837 1、下载maven安装包 http://maven.apache.org/download.cgi 2、基于Unix的操作系统&#xff08;Linux、Solaris 和 Mac OS X&#xff09; 解压上面下载的包&#xf…

中文新闻分类 数据集_三亚试点用大数据推行垃圾分类:刷卡扔垃圾,分类有奖励|界面新闻...

文丨海南日报 高懿 周月光10月19日电 &#xff0c;垃圾分类如何推行&#xff1f;三亚市引进智能装备&#xff0c;在6个社区开展试点&#xff0c;运用大数据分析&#xff0c;通过行为激励&#xff0c;引导市民积极配合垃圾分类。19日上午&#xff0c;记者现场采访试点社区垃圾分…

为什么a*算法采用哈密尔顿距离作为启发函数比不在位数为启发函数的性能要好?_KDD2019: 使用神经网络为A*搜索算法赋能 --以个性化路径推荐为例...

本文系 KDD2019 论文的解读&#xff1a;Wang, Jingyuan, Ning Wu, Wayne Xin Zhao, Fanzhang Peng, and Xin Lin. "Empowering A* Search Algorithms with Neural Networks for Personalized Route Recommendation." InProceedings of the 25th ACM SIGKDD Internati…

java socket tomcat_在Tomcat环境下使用socket通信

最近在做一个APP的服务器端&#xff0c;但是APP和服务器端使用的是HTTP的通信协议&#xff0c;而另一方与服务器端通信却使用的是自定义的通信协议。具体的系统拓扑如下&#xff1a;为了完成以上的需求&#xff0c;一般的解决方案有两种&#xff1a;自己实现服务器端程序&#…

安卓手机主题软件_类似主题软件下载-类似主题安卓官方版下载v2.6.6.3

类似主题app&#xff0c;介绍给大家&#xff0c;是一款可以让我们在线进行主题变幻&#xff0c;拥有更多特色主题风格的服务平台。有了它用户就可以体验不同机型的主题风格&#xff0c;不论苹果还是安卓都是支持的&#xff0c;喜欢的不妨来下载看看&#xff01;【类似主题应用功…

Java 文件 IO 操作

文章目录1. File类2. RandomAccessFile类3. 流类3.1 字节流3.2 字符流3.3 管道流3.4 ByteArrayInputStream、ByteArrayOutputStream3.5 System.in、System.out3.6 打印流 PrintStream3.7 DataInputStream、DataOutputStream3.8 合并流3.9 字节流与字符流的转换3.10 IO包类层次关…

java dsp_GitHub - Onemeaning/JavaDsp: 数字信号处理(DSP)方面的Java封装,包含常用的一些处理方法,如滤波、信号变换等等。...

JavaDsp数字信号处理(DSP)方面的Java封装&#xff0c;包含常用的一些处理方法&#xff0c;如滤波、信号变换等等。该类库是我本科毕业设计中的一部分&#xff0c;绝大部分都是我自己写实现的&#xff0c;很少部分算法有我另外几个朋友参与讨论和实现&#xff0c;在此表示感谢。…

简单banner制作

简单做了一个banner,效果不是很好&#xff0c;主要温习了蒙版知识和滤镜的使用&#xff0c;其中使用&#xff08;图像 > 调整 > 照片滤镜&#xff0c; 可以让图片融合得更协调&#xff0c;另外图片上添加斜线做背景&#xff0c;这些小技巧在做banner时&#xff0c;能打造…

苹果11怎么录屏_苹果11怎么设置骚扰电话号码

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。系统版本为&#xff0c;苹果11设置拦截骚扰电话的方法如下&#xff1a;1、首先打开手机设置&#xff0c;找到【勿扰模式】&#xff1b;2、将勿扰模式开启后&#xff0c;点击下方【允…

BigTable的开源实现:HBase数据库

learn from 从0开始学大数据&#xff08;极客时间&#xff09; 文章目录1. 两种数据库2. HBase 可伸缩架构3. HBase 可扩展数据模型4. HBase高性能存储1. 两种数据库 关系数据库&#xff08;RDBMS&#xff09;缺点&#xff1a; 糟糕的 海量数据处理能力、僵硬的设计约束 从 …

java toast_Android中Toast的用法简介

Toast是Android中用来显示显示信息的一种机制&#xff0c;和Dialog不一样的是&#xff0c;Toast是没有焦点的&#xff0c;而且Toast显示的时间有限&#xff0c;过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。1.默认效果代码Toast.makeText(getApplicationCont…

流式计算的代表:Storm、Flink、Spark Streaming

learn from 从0开始学大数据&#xff08;极客时间&#xff09; 文章目录1. Storm2. Spark Streaming3. Flink对存储在磁盘上的数据进行大规模计算处理&#xff0c;大数据批处理对实时产生的大规模数据进行处理&#xff0c;大数据流计算 1. Storm 一些系统 业务逻辑 和 数据处…

windows7正版验证_Windows7 寿终正寝:那些一并消逝的软件你知多少?

IT服务圈儿有温度、有态度的IT自媒体平台来源&#xff1a;太平洋电脑网本月&#xff0c;一代经典操作系统微软Windows 7正式迎来了生命周期的完结。微软宣布&#xff0c;此后将不再为Win7提供任何形式的更新&#xff0c;包括安全更新、稳定性更新和功能更新&#xff1b;而仍在使…

stotybord如何添加子视图_Revit软件技巧合集(建筑构件、视图处理、建筑表现、高级技巧)...

Revit软件技巧合集164套(建筑构件、视图处理、建筑表现、高级技巧)BIM技术在我国建筑行业受到了越来越多的关注&#xff0c;也得到了快速地发展。BIM应用软件也如雨后春笋般的涌现&#xff0c;随着时间的推移&#xff0c;revit在BIM应用中将成为设计利器&#xff0c;而在工程施…