我应该在包含许多不同电子邮件地址的文件中读取并使用数组打印出来.问题是我需要消除重复的电子邮件.
我能够让我的try/catch工作并打印出电子邮件地址.但是,我不知道如何删除重复项.我不了解哈希码或如何使用哈希码Set.任何援助将不胜感激.
这是我到目前为止:
import java.util.Scanner;
import java.io.*;
public class Duplicate {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter file name: ");
String fileName = keyboard.nextLine();
if (fileName.equals("")) {
System.out.println("Error: User did not specify a file name.");
} else {
Scanner inputStream = null;
try {
inputStream = new Scanner(new File(fileName));
} catch (FileNotFoundException e) {
System.out.println("Error: " + fileName + " does not exist.");
System.exit(0);
}
String[] address = new String[100];
int i …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,它将生成一个随机的十个整数数组(1到6之间的整数),然后我必须形成另一个数组,删除所有重复项.所以{1,3,5,5,3,4,2,2,2,1}应该返回{1,3,5,4,2}.问题是我得到了答案,但输出数组在重复项所在的地方包含0,我不知道如何减少临时数组的长度(如果可能的话).这是我的计划:
import java.util.*;
public class Lab9Tut12{
public static void main (String[]args){
int [] numbers = new int[10];
//int length = 10;
int[] temp = new int[length];
for(int i=0;i<10;i++){
numbers [i] = (int)(Math.random()*6+1);
System.out.print(numbers [i]);
System.out.println();
}
for(int i=1;i<10;i++){
if(numbers[i-1]!=numbers[i]){
temp[i]= numbers[i];
//length--;
}
}
System.out.println(Arrays.toString(temp));
}
Run Code Online (Sandbox Code Playgroud)
}
我有一个问题,我相信解决方案是如此简单,但我无法找到它.我有一个ArrayList较小的ArrayLists.这些列表包含类型的元素String.我想将较小的列表合并为一个,然后删除重复项.让我说清楚.
我有这个:
[[USA, Maine], [USA, Maine, Kennebunk], [USA, Maine, North Berwick],
[USA, New Hampshire], [USA, Keene, New Hampshire], [USA, Keene, New
Hampshire, Main Street], [USA, New Hampshire, Swanzey]].
Run Code Online (Sandbox Code Playgroud)
这是我的主要列表,其中包含较小的列表.我希望有一个最终的ArrayList,它是较小的合并,并删除重复项.
我想要的是:
[USA, Maine, Kennebunk, North Berwick, New Hampshire , Keene, Main Street, Swanzey]
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢
我开发了一个数组列表.
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("3");
list.add("5");
list.add("6");
list.add("7");
list.add("7");
list.add("1");
list.add("10");
list.add("2");
list.add("12");
Run Code Online (Sandbox Code Playgroud)
但如上所述它包含许多重复元素.我想删除该列表中的所有重复项.为此我想首先我需要将列表转换为集合.
Java是否提供将列表转换为集合的功能?是否有其他设施可以从列表中删除重复项?
我从内容提供商处获取联系人,我需要在列表视图中显示它们.在此过程中,我成功获取联系人,但它们包含重复的值.现在每个联系人都没有Phone.CONTACT_ID.我想过滤我的联系人列表基于该特定领域.
这是代码:
try {
cursor = getApplicationContext().getContentResolver()
.query(Phone.CONTENT_URI, null, null, null, null);
int Idx = cursor.getColumnIndex(Phone.CONTACT_ID);
int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);
int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER);
int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_THUMBNAIL_URI);
cursor.moveToFirst();
do {
System.out.println("=====>in while");
HashMap<String, String> hashMap = new HashMap<String, String>();
contactid=cursor.getString(Idx);
name = cursor.getString(nameIdx);
phoneNumber = cursor.getString(phoneNumberIdx);
image = cursor.getString(photoIdIdx);
System.out.println("Id--->"+contactid+"Name--->"+name);
if (!phoneNumber.contains("*")) {
hashMap.put("contactid", "" + contactid);
hashMap.put("name", "" + name);
hashMap.put("phoneNumber", "" + phoneNumber);
hashMap.put("image", "" + image);
// hashMap.put("email", ""+email);
hashMapsArrayList.add(hashMap);
}
} …Run Code Online (Sandbox Code Playgroud) 我在寻找一个正则表达式,将提取所有可能的金额从一个字符串,假设数额总是包含2位小数,并接受要么.或,宽松作为分隔符.例如,对于以下字符串,我想找到以下金额:
1.234,567.89
1.23
1.234,56
234,56
34,56
4,56
1.234,567.89
234,567.89
34,567.89
4,567.89
567.89
67.89
7.89
Run Code Online (Sandbox Code Playgroud)
这是用正则表达式实现的吗?
我当前的正则表达式?\\d{1,3}([\\.,]\\d{3})*([\\.,]\\d{2})但显然不起作用,因为它只返回1个匹配.
我有五个清单List<String>.我想获得一个包含这些列表中所有元素的数组,从而消除了任何重新分区.什么是最好的方法呢?
`编辑:有人也可以在与List的比较中评论HashSet的性能.我担心性能,因为我在计算要在网页上显示的数据时正在做这项工作.和不.套装中的元素高约300-400,哪些参数适合套装?
我在集合中的元素将是这种类型:
<HColumn<String, String>>
与下面的代码相比,是否有更好的方法从数组列表中删除重复项,当遇到较大的输入时,它的工作时间为 O(n) 。任何建议,将不胜感激。谢谢。
注意:- 不能使用任何额外空间,应就地解决。
输入:- 这将是一个带有重复项的排序数组。
代码 :-
public int removeDuplicates(ArrayList<Integer> a) {
if(a.size()>1){
for( int i=0;i<a.size()-1;i++ ) {
if(a.get(i).intValue() == a.get(i+1).intValue() ) {
a.remove(i);
i--;
}
}
}
return a.size();
}
Run Code Online (Sandbox Code Playgroud)
请在编码器链接处测试代码。
我已经编写了在 C 中查找重复元素的代码,但现在我坚持在 freemarker 中实现相同的代码有人可以帮忙吗?
int n, a[10], b[10], count = 0, c, d;
printf("Enter number of elements in array\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for(c=0;c<n;c++)
scanf("%d",&a[c]);
for(c=0;c<n;c++)
{
for(d=0;d<count;d++)
{
if(a[c]==b[d])
break;
}
if(d==count)
{
b[count] = a[c];
count++;
}
}
printf("Array obtained after removing duplicate elements\n");
for(c=0;c<count;c++)
printf("%d\n",b[c]);
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,我在哈希集中添加了 5 个具有相同数据的对象,我想消除具有重复数据的对象并打印不同的对象数据。
public static void main(String[] args) {
Employee emp1 = new Employee(1,"sandhiya","cse",22);
Employee emp2 = new Employee(1,"sandhiya","cse",22);
Employee emp3 = new Employee(1,"sandhiya","cse",22);
Employee emp4 = new Employee(1,"sandhiya","cse",22);
Employee emp5 = new Employee(1,"sandhiya","cse",22);
HashSet<Employee> emps = new HashSet<Employee>();
emps.add(emp1);
emps.add(emp2);
emps.add(emp3);
emps.add(emp4);
emps.add(emp5);
for(Employee e: emps){
System.out.println(e.id + " "+e.name+" "+e.department+ " "+e.age);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个阵列有多次同名.所以如何删除它,只有我希望以一个名称显示:ArrayList name = new ArrayList();
name =印度,日本,中国,美国,中国,日本,澳大利亚,印度,中国
我想要这样显示
name = india,japan china,usa,Australia
我有点困惑,如何删除重复的名称.这意味着,我想一次显示一个unque名称,而不是列表中多次相同的名称.
注意:
我找到了解决方案,但是当我在列表上显示时,如果第一个元素日本显示然后我点击它然后它显示在Toast印度,如何发生这个?然后其他人一样.在吐司上显示不准确.
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("AA");list.add("Aw");list.add("Aw");list.add("AA");
list.add("AA");list.add("A45");list.add("AA");
list.add("Aal");list.add("Af");list.add("An");
System.out.println(list);
for(int i=0;i<list.size();i++){
if(list.get(i).equals("AA")){
list.remove(i);
}
}
System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试删除ArrayList中具有值的所有元素"AA",但是,它只删除其中的一些而不是全部.任何人都可以向我解释我做错了什么?
arraylist中的元素:
[AA, Aw, Aw, AA, AA, A45, AA, Aal, Af, An]
Run Code Online (Sandbox Code Playgroud)
我试图删除所有具有值的字符串后输出"AA".
[Aw, Aw, AA, A45, Aal, Af, An]
Run Code Online (Sandbox Code Playgroud)
为什么还在AA输出列表中?
我需要提供一个Java解决方案,它给出两个列表a和b,它返回一个列表中但不存在于另一个列表中的值.
例如清单 a = [26, 13, 88, 9]
名单 b = [26, 1, 8, 12]
java ×10
arraylist ×4
duplicates ×4
arrays ×3
android ×2
algorithm ×1
collections ×1
contacts ×1
freemarker ×1
hashset ×1
html ×1
list ×1
netsuite ×1
regex ×1