`

数组相同元素清理(HashSet)

阅读更多
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class ArrayMerge {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayMerge m = new ArrayMerge();
		m.clearSameElements();
	}

	public void clearSameElements() {
		String[] s = { "one", "two", "two", "three", "three", "three" };
		List mList = Arrays.asList(s);
		/**
		 * HashSet是实现Set接口的一个类,具有特点:
		 * <p>
		 * 1.不能保证元素的排列顺序
		 * <p>
		 * 2.HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改了Set中的值,
		 * 就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果
		 * 不存在这样的对象,可以使用Collections.synchronizedSet()方法完成. Set s =
		 * Collections.synchronizedSet(new HashSet(...));
		 * <p>
		 * 3.元素值可以为null.
		 * */
		Set mSet = new HashSet(mList);
		String[] temp = new String[mSet.size()];
		Iterator mIt = mSet.iterator();
		for (int i = 0; mIt.hasNext(); i++) {
			temp[i] = (String) mIt.next();
			System.out.print("_____" + temp[i]);
		}
	}

}
分享到:
评论

相关推荐

    Java 集合框架高难度进阶版面试题集锦解析

    - HashSet 不保证元素的顺序,插入顺序无法直接反映。 14. ArrayDeque 和 LinkedList 的对比: - ArrayDeque 基于数组的双端队列,头尾插入删除高效,适合循环缓冲等场景。 - LinkedList 更适合频繁插入和删除,...

    集合类及其分支

    ArrayList本质上是一个动态数组,它允许所有元素,包括null。添加、获取和设置元素的操作具有常量时间复杂度。但是,添加元素的效率为分摊的常数,添加n个元素需要O(n)的时间。ArrayList也是非同步的,需要同步时可...

    32个经典的Java面试笔试题.txt

    在 `Set` 中,每个元素都是唯一的,即使多次添加相同的元素,实际上只保存一份。 **实现类**: - `HashSet`:基于哈希表实现的 `Set`,插入顺序不保留,查询效率高。 - `LinkedHashSet`:基于哈希表和双向链表实现...

    C# 语法全解

    - 数组是一组相同类型的元素集合,支持一维、二维或多维数组。 - 集合框架包括List、Dictionary,TValue&gt;等,泛型提供类型安全和效率。 - HashSet、Queue和Stack等结构满足特定数据管理需求。 7. **异常处理** -...

    Java 30道面试题和答案.docx

    - ArrayList基于动态数组,适合于频繁访问元素,但在中间插入和删除元素效率较低。 - LinkedList基于链表,插入和删除操作快,但访问元素的效率相对较低。 4. **Array vs ArrayList**:Array是原始的Java数组,而...

    java 试题 基础

    - 数组是一种固定大小的数据结构,用于存储相同类型的元素。 #### 集合框架 - **`ArrayList`**: 动态数组实现,支持快速随机访问,但插入和删除操作较慢。 - **`Vector`**: 类似于`ArrayList`,但它是线程安全的。 ...

    富士康JAVA面试题1

    `==`比较的是对象的引用,而`equals()`方法(在Set的实现类如HashSet或TreeSet中重写)比较的是对象的内容。如果两个对象的内容相同,`equals()`返回`true`。 4. **构造器Constructor**: 构造器不能被重写...

    .net面试题B(问题及答案)

    `equals()`用于比较两个Set是否包含相同元素,而`==`检查引用是否指向同一对象。 8. **长度方法**:数组没有`length()`方法,只有`length`属性;而`String`有`length()`方法来获取字符串长度。 9. **sleep()与wait...

    2021国外Java面试题(纯英文).pdf

    字符数组相对于字符串存储敏感信息的优势在于,字符串是不可变的,一旦创建就不能修改,而字符数组可以复制和修改,如果需要清除敏感信息,可以更方便地清零数组。 JVM、JRE和JDK之间的差异已经在前面解释过。 在...

    1_Java200+面试题(2021).pdf

    24. HashSet的实现原理是基于HashMap实现,它将元素作为HashMap的键,将一个虚拟对象作为值。 25. ArrayList和LinkedList的区别在于,ArrayList基于动态数组,而LinkedList基于双向链表,LinkedList在插入和删除操作...

    Java相关基础知识的总结.txt

    例如`ArrayList`支持动态增长的数组行为,`LinkedList`适合频繁插入删除的操作,`HashSet`和`TreeSet`分别提供不重复元素且无序和有序的集合等。 2. **对象与类** 对象是类的一个实例。类是一种数据类型,定义了...

    JAVA核心知识点整理.pdf

    (1)HashSet:基于HashMap实现,不允许重复元素。 (2)TreeSet:基于红黑树实现,不允许重复元素,元素会自动排序。 (3)LinkHashSet:基于HashMap和LinkedList实现,不允许重复元素,维护了一个插入顺序。 4. ...

    Java 2 教程(第五版)(PDG)

    - **一维数组**:存储同类型元素的序列,可以进行遍历和操作。 - **多维数组**:二维数组或多维数组用于处理表格或矩阵数据。 5. **异常处理** - **异常类**:Java使用异常处理机制处理程序运行时的错误,异常类...

    Java复习.zip

    8. **数组**:Java中的数组是一组相同类型的元素集合,可以按索引访问。同时,Java也支持多维数组。 9. **集合框架**:Java集合框架包括接口(如List、Set、Queue)和实现类(如ArrayList、HashSet、LinkedList等)...

    Java基础总结基础部分

    - 通常是由编程错误引起的,如访问不存在的数组元素、使用`null`引用等。 - **非运行时异常(检查型异常)**: - 这类异常是非预期性的、通常情况下应由程序处理的异常,如`IOException`、`SQLException`等。 - ...

    Java面试题 .docx

    - Set(如HashSet和TreeSet):HashSet基于HashMap,不保证顺序;TreeSet基于TreeMap,按元素自然排序。 - Map(如HashMap和ConcurrentHashMap):HashMap提供快速查找,非线程安全;ConcurrentHashMap是线程安全...

    ACCP-S1-C#

    - **数组**:固定大小的存储同类型元素的序列,有单维、多维和交错数组等形式。 - **集合**:如ArrayList、LinkedList、HashSet等,提供了动态存储和管理对象的能力。 6. **文件与流** - **文件操作**:C#提供了...

    个人心血吊打面试官 nb

    1. **使用`HashSet`**:利用集合元素唯一性的特点去除重复项。 2. **JDK 1.8的`distinct()`方法**:在Stream API中提供了`distinct()`方法来去除重复元素。 **六、BIO、NIO、AIO的区别** - **BIO**:同步阻塞IO,...

    Java编程思想笔记(全)

    数组是一种存储相同类型元素的集合。本章介绍了如何声明和初始化数组、如何遍历数组以及如何使用Arrays工具类来进行排序和搜索等操作。此外,还会讨论二维数组和多维数组的应用场景。 #### 第 17 章 容器深入研究 ...

    Java基础(韩顺平版)笔记详

    - 数组是用来存储相同类型元素的一种数据结构。 - 数组的长度固定,在创建时确定。 - 数组元素可以通过索引访问,索引从0开始。 - **字符串** - String类用于表示不可变的字符序列。 - StringBuilder和...

Global site tag (gtag.js) - Google Analytics