- 浏览: 370119 次
- 性别:
- 来自: 中国山东
文章分类
最新评论
-
ChinaEstone:
再举一个例子:RunnableImpl impl = new ...
这段代码执行任务时启动了几个线程? -
ChinaEstone:
只有一个timer的线程,以前理解的时候任务runable接口 ...
这段代码执行任务时启动了几个线程? -
nocb:
你好,请问有没有 darkstar的 ios android ...
SGS 0.9.7 协议解析 -
diyunpeng:
这个我得学习一下。
Linux下vi的用法 -
tantan:
mina 多并发实时传输,
只能建立一个连接传输,如何解决呢
...
深入理解Apache Mina (1)---- Mina的几个类
Set(): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完
全一样的接口。Set接口不保证维护元素的次序。
HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。
TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。
LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查
询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注意的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现
Comparable接口并定义compareTo()方法。
import java.util.LinkedList; public class TestArray01 { public static void main(String args[]) { Integer[] a1 = { 1, 2, 4, 3, 5, 7, 8 }; Integer[] a2 = { 8, 2, 4, 7, 9 }; LinkedList<Integer> list1 = new LinkedList<Integer>(); LinkedList<Integer> list2 = new LinkedList<Integer>(); // 将数组转换成list for (int i = 0; i < a1.length; i++) { list1.add(a1[i]); } // 将数组转换成list for (int i = 0; i < a2.length; i++) { list2.add(a2[i]); } int size_1 = list1.size(); int size_2 = list2.size(); // 根据list中长度最长的设置list要循环的长度 if (size_1 >= size_2) { // 逐个比较两个list中的值是否相同 for (int i = 0; i < list1.size(); i++) { Integer temp = list1.get(i); // 如果两个数组中有相同的值 // 则将此值在两个list中删除 // 注意此处不能使用remove方法 if (list2.contains(temp)) { list1.set(i, null); int pos = list2.indexOf(temp); list2.set(pos, null); } } } else { // 逐个比较两个list中的值是否相同 for (int i = 0; i < list2.size(); i++) { Integer temp = list1.get(i); // 如果两个数组中有相同的值 // 则将此值在两个list中删除 // 注意此处不能使用remove方法 if (list1.contains(temp)) { list1.remove(temp); list2.remove(temp); } } } System.out.println(" 剩余的数组的信息 list1 :"); for (int i = 0; i < list1.size(); i++) { System.out.println("----------------- : " + list1.get(i)); } System.out.println(" 剩余的数组的信息 list2 :"); for (int i = 0; i < list2.size(); i++) { System.out.println("----------------- : " + list2.get(i)); } // 将删除掉重复元素的两个list合并到第三个list中 LinkedList<Integer> list3 = new LinkedList<Integer>(); for (int i = 0; i < list1.size(); i++) { if (list1.get(i) != null) { list3.addLast(list1.get(i)); } } for (int i = 0; i < list2.size(); i++) { if (list2.get(i) != null) { list3.addLast(list2.get(i)); } } for (int i = 0; i < list3.size(); i++) { System.out.println("-------list3---------- : " + list3.get(i)); } } }
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class TestArray02 { public static void main(String args[]) { Integer[] a1 = { 1, 2, 3 }; Integer[] a2 = { 4, 2, 3 }; Map<Integer, Object> map = new HashMap<Integer, Object>(); for (int i = 0; i < a1.length; i++) { // 因为我们要获取的是set集合,所以 // 只在此处设置map的key map.put(a1[i], null); } for (int i = 0; i < a2.length; i++) { // 因为我们要获取的是set集合,所以 // 只在此处设置map的key map.put(a2[i], null); } List<Integer> list = new ArrayList<Integer>(); Iterator<Integer> it = map.keySet().iterator();// 在此处获取set的集合 while (it.hasNext()) { Integer ob = (Integer) it.next(); list.add(ob); } // 将list集合转换成Integer数组 Integer[] a3 = (Integer[]) list.toArray(new Integer[list.size()]); for (int i = 0; i < a3.length; i++) { System.out.println(a3[i]); } } }
发表评论
-
线性同余随机算法实现
2014-09-24 15:02 681package com.wistone.server.cor ... -
Java Pass By Value Example
2014-05-03 09:32 765package author.estone.java; ... -
How to use git in eclipse ?
2014-04-20 11:03 717when we use git in eclipse, w ... -
这段代码执行任务时启动了几个线程?
2013-08-07 10:16 1204import java.util.Timer; impor ... -
LookupError: unknown encoding 'ms936'
2013-08-05 12:42 1469Jython调用print方法,报错如下LookupErr ... -
Nginx反向代理不跳转(nginx/java/tomcat/jsp)
2013-03-19 17:48 3400<% String path = request.g ... -
Eclipse Indigo Maven SCM SVN
2012-12-20 23:06 1079Following these steps: 1) Ins ... -
驼峰格式和下划线格式字符串相互转换
2012-11-21 11:57 3581/** * @param strs * ... -
延迟5s的另外一种写法
2012-08-07 14:24 770int seconds = 5; l ... -
Use CodeMoel Generate Java Source Code
2012-06-06 20:21 1665package samples; // Example: ... -
找jar的两个网站
2012-05-26 02:00 784finjar.com docjar.com -
Tomcat开启JMX功能
2011-11-15 00:20 1399使用Jconsole或者VisualVM监控Tomcat的JV ... -
RSA对文件进行加密和解密
2011-03-31 16:39 1860package author.estone.rsa; i ... -
Facebook中FBML和IFrame的工作原理
2010-05-19 11:52 3284在Canvas Page中,用户创建的应用需要使用facebo ... -
数据库为什么要添加连接池
2010-03-03 16:55 1542今天在学习kauklahti的时 ... -
分析使用Jdbc连接数据库时用到的对象
2010-03-03 16:54 1133先看有上文给出的一个连接msyql的Jdbc的源码。 //- ... -
一行“神奇”的代码
2010-02-02 15:15 939最近在复习闫宏的 ... -
老生常谈--return和Collection中的回值问题
2010-01-25 17:35 0关于return返回值的问题和Collection中存放引用的 ... -
Pushlet--Web Comet FrameWork
2010-01-06 10:51 1096Server-side notification to b ... -
一个Tomcat中文文档网站
2009-12-21 15:13 2744这里有中文版的Tomcat的文档http://www.jaxm ...
相关推荐
在深入探讨Java中Set接口的实现细节之前,我们先来明确一下Set在Java中的核心概念。Set接口是Java集合框架的一部分,它代表了一个数学抽象集合,即不允许包含重复元素的集合。更正式地讲,根据其Javadoc文档,Set是...
在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 这种方法通过两层循环来检查数组中的元素是否重复。其主要步骤如下: 1. **...
在本压缩包中,我们关注的是一个Java编程相关的学习资源,特别是一道源自LeetCode的面试题,题目编号为217,主题是检查数组中是否存在重复元素。这道题目通常出现在求职面试中,用于测试候选人在算法和数据结构方面...
在Java编程语言中,集合框架是处理对象组的重要工具,其中`List`、`Set`和`Map`是三大核心接口。本资料“Java list set map.zip”专注于讲解这些接口及其相关实现,帮助开发者深入理解Java集合类的使用。 首先,`...
LinkedList则是一个双链表,适合于频繁进行插入和删除操作,因为这些操作在链表中通常比在数组中更快。HashSet是一个不包含重复元素的集合,它不保证元素的顺序,但提供了快速的添加和查找。 List接口扩展了...
ArrayList是Java集合框架中的一个接口实现类,基于动态数组实现,提供了按索引访问元素的高效性能。你可以通过增删改查(Add、Remove、Set、Get)等基本操作来管理ArrayList中的元素。在day20的代码中,可能会包含...
而在Java中,Set接口下有多种实现,如HashSet、LinkedHashSet和TreeSet,它们各自有不同的特性和性能特点。 标签“the_show set”可能是指展示或演示集合的使用,这可能包括编写代码示例来说明如何使用集合进行各种...
通过学习,你可以掌握如何在集合中管理不同类型的数据,以及如何利用Java的泛型来提高代码的可读性和安全性。 总的来说,这个教程是为Java初学者和开发者提供的宝贵资源,旨在帮助他们更好地理解和运用Java集合框架...
1. **Set接口概述**:Set接口的特性是无序(元素插入顺序不保留)和不可重复(不允许出现重复元素)。它是Java集合框架的一部分,用于存储不重复的元素集合。 2. **Map接口**:Map接口存储键值对,其核心在于键...
在Java编程语言中,`Set`接口是集合框架的一部分,它继承自`Collection`接口,提供了不允许重复元素的存储功能。在这个主题中,我们将深入探讨`Set`映射的概念,包括其基本原理、用途、以及如何在实际开发中运用。 ...
Set接口不允许重复元素,HashSet是其典型实现,利用哈希表提供快速查找。Map接口存储键值对,HashMap则是常用的实现,它通过哈希函数实现键的快速定位。 Java集合框架还包含了一些工具类,如Collections和Arrays,...
在Java编程语言中,集合框架是其核心特性之一,它为数据存储提供了强大的支持。本文将深入探讨Java中的各种集合,包括List、Set和Map,以及如何遍历这些集合,并提供了一个集合排序的实例。 首先,让我们从List开始...
5. **集合**:Java的`java.util.Collection`接口是所有单值容器的父接口,包括Set(不允许重复元素)和List(允许重复元素)。`ArrayList`和`HashSet`分别是基于数组和哈希表实现的集合。 6. **映射(哈希表)**:...
**List** 接口在Java集合框架中扮演着至关重要的角色,它是一种允许包含重复元素的有序集合。这种类型的集合非常适合需要保留元素插入顺序的应用场景。Java标准库提供了多种List实现,其中最常用的是 `ArrayList` 和...
通过阅读和运行这些示例,你可以更深入地理解Java集合框架的工作原理,以及如何在实际项目中有效地利用它们。 例如,你可能会看到如何使用ArrayList和LinkedList来演示不同类型的列表操作,如何通过HashSet和...
在Java编程语言中,容器(Container)是一种用来存储和管理数据结构的重要概念,它提供了组织、存储和操作数据的方式。...在实际应用中,开发者应根据具体需求和场景,合理选择并利用Java集合框架提供的各种容器类型。
单列集合中,Set接口的集合主要用于存储不重复的元素,而List接口的集合则可以存储重复的元素。双列集合则是指Map接口的集合,它存储的是键值对映射关系。 首先,Set集合是一个不允许重复元素的集合,它有多种实现...
Java编程基础笔记主要聚焦在集合框架上,这是Java编程中不可或缺的部分。集合框架是Java提供的一组接口和类,用于存储和操作数据。它包括两种主要类型:Collection和Map。 Collection是所有单值容器的超接口,其中...
本实验将引导我们深入学习Java集合框架,这包括List、Set、Queue以及Map等接口的实现类,以及它们在实际编程中的应用。兰州大学的这个实验旨在帮助学生掌握这些核心概念,并提升对数据结构的理解。 首先,让我们...