「java不重复的集合」java可重复集合

博主:adminadmin 2022-12-21 12:39:09 64

本篇文章给大家谈谈java不重复的集合,以及java可重复集合对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java哪些集合的 元素不能重复

SetT 集合不允许重复的。

SetT为接口,常用的实现类是HashSetT

举个例子:

SetInteger testSet = new HashSetInteger();

testSet.add(1);

testSet.add(2);

testSet.add(3);

testSet.add(1);

打印这个testSet 你只能获得3个元素 1 2 3,用size()方法来获取这个集合的大小时返回也是3。

java判断集合是否重复用什么符号关键字

方法1:

利用Set集合来实现

将字符串中的每个字符依次存入Set集合中,Set集合会自动剔除重复元素。

判断Set集合的元素个数是否等于字符串的长度,若相等,则字符串中没有重复的字符。否则,字符串中存在重复的字符。

Code:

public static boolean isunique(String s) {

Set set = new HashSet();

char[] chars = s.toCharArray();

for(char c:chars) {

set.add(c);

}

return (set.size()==s.length());

}

方法2:

将字符串转化为字符数组。

对于每个字符,从字符串的开头检索,得到索引号index1

从字符串的末尾开始索引,得到索引号index2

判断index1是否等于index2

若相等,则字符串中不含重复字符。否则,字符串中含有重复字符。

Code:

public static boolean isunique(String s) {

int index1,index2;

char[] chars = s.toCharArray();

for(char c:chars) {

index1 = s.indexOf(c);

index2 = s.lastIndexOf(c);

if(index1 != index2) return false;

}

return true;

}

java 中如何 找出两个集合中的不重复的元素

循环第一个集合,在第二个集合中查找,就可以将第一个集合的数据分成,两类,

1类是再第二个集合有的,一类是在第二个集合中没有的。

这样,才把第二个集合中有的作为一个新集合,循环第二个集合的时候只需要对比就行了,去掉第二个集合中包含新集合里面的数据,剩下的,加上第一个集合就等于是不重复的,

重复的也就是新集合,这样两类都算是找出来了。只用循环查找和对比就可以了。没有技术难度。

java 集合set类中是如何实现数据不能重复的?

Set 有个 add 方法是将元素添加到 Set 中,以 HashSet 为例。

public boolean add(E e) {

    return map.put(e, PRESENT)==null;

}

可以看到,HashSet 底层的数据结构是一个HashMapE,Object ,将 e 作为 HashMap 的 key 保存的。而 HashMap 的底层数据结构是 HashTable ,根据 HashMap 的 key 的HashCode 去 HashTable (具体实现是数组+链表) 里找到元素的位置。如果同一个对象(使用equals 来比较两个对象是否相同,具体是比较对象的 hashCode() 是否相同) 往Set 里放,最终放到 HashTable 的位置是相同的。具体判断Set 是否包含某个对象,调用的是Set的contains(Object o) 方法,它内部也是通过计算 o 的hashCode 去查找该元素是否存在的。

如果题主是新学习Java的同学,建议重点学习一下常用集合的数据结构,对于掌握Java这门语言非常有帮助。

很急 java中有没有去掉重复又是有序的集合或数据 最好有列子 除了set

Object object = new Object();

List list =new ArrayList();

list.add(object);

list.add(object);

Set set = new HashSet();

set.addAll(list);

List list2 =new ArrayList();

list2.addAll(set);

System.out.println(list2.size());

具体思路就是 把list 加到HashSet中 ,我们知道 Set是不能重复的...

并且注意

你如果有一个对象:

并且有2个字段

你有可能认为2个字段相等的话,这个对象就是重复的...这样的话,你应该去实现equest方法和hashCode方法里面去实现关于这2个字段判断...这个是hash表的特点

如果想要排序list,那么你就要重新写一个排序类去实现Comparator接口

//一个POJO例子

class User {

String name;

String age;

public User(String name,String age){

this.name=name;

this.age=age;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

//具体的比较类,实现Comparator接口

import java.util.Comparator;

import java.util.List;

import java.util.ArrayList;

import java.util.Collections;

public class ComparatorUser implements Comparator{

public int compare(Object arg0, Object arg1) {

User user0=(User)arg0;

User user1=(User)arg1;

//首先比较年龄,如果年龄相同,则比较名字

int flag=user0.getAge().compareTo(user1.getAge());

if(flag==0){

return user0.getName().compareTo(user1.getName());

}else{

return flag;

}

}

}

//测试类

public class SortTest {

public static void main(String[] args){

List userlist=new ArrayList();

userlist.add(new User("dd","4"));

userlist.add(new User("aa","1"));

userlist.add(new User("ee","5"));

userlist.add(new User("bb","2"));

userlist.add(new User("ff","5"));

userlist.add(new User("cc","3"));

userlist.add(new User("gg","6"));

ComparatorUser comparator=new ComparatorUser();

Collections.sort(userlist, comparator);

for (int i=0;iuserlist.size();i++){

User user_temp=(User)userlist.get(i);

System.out.println(user_temp.getAge()+","+user_temp.getName());

}

}

}

上面的这个例子是从网上copy下来的...OK..就这些..

java set集合不可重复的意思

set 的equals是内容相等.

如果没有重写过的equals就是HashCode值相等,可以理解为地址.

重写过的,就要看对应的equals方法的说明了,根据实际用途来做,一般都是跟内容有关

关于java不重复的集合和java可重复集合的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。