为什么Java Vector被认为是遗留类,已过时或已弃用?
在使用并发时,它的使用是否有效?
如果我不想手动同步对象而只想使用线程安全的集合而不需要制作底层数组的新副本(就像CopyOnWriteArrayList那样),那么它可以使用Vector吗?
怎么样Stack,这是一个子类Vector,我应该怎么用,而不是它?
我想在Java中进行联合,交叉,差异和反向操作.
首先,我有2个实例 ArrayList<Integer>
a = [0,2,4,5,6,8,10]
b = [5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)
工会乙应该回来 c = [0,2,3,4,5,6,7,8,9,10]
交叉b应该返回 c = [5,8,10]
应该返回一个defference b c = [0,2,3,4]
相反 a = [10,8,6,5,4,2,0]
像这样的东西.
如何在Java中实现该方法?
更新:我必须从这个模板开始:
package IntSet;
import java.util.ArrayList;
import java.util.Collection;
public class IntSet {
private ArrayList<Integer> intset;
public IntSet(){
intset = new ArrayList<Integer>();
}
public void insert(int x){
intset.add(x);
}
public void remove(int x){
//implement here
intset.indexOf(x);
}
public boolean member(int x){
//implement here
return true;
}
public IntSet intersect(IntSet a){
//implement here
return …Run Code Online (Sandbox Code Playgroud) 我已经看到了其他几个与此类似的问题,但我真的找不到能解决问题的任何问题.
我的用例是这样的:用户最初有一个项目列表(listA).他们重新排序项目并希望保持该顺序(listB),但是,由于限制我无法在后端保持订单,因此我必须在检索后对listA进行排序.
基本上,我有2个ArrayLists(listA和listB).一个具有特定顺序的列表应该在(listB)中,另一个具有项目列表(listA).我想基于listB对listA进行排序.
有没有办法确定ArrayList是否包含不同ArrayList的任何元素?
像这样:
list1.contains(any element of list2)
Run Code Online (Sandbox Code Playgroud)
循环遍历所有元素list2并以唯一的方式逐个检查元素?
在Java中,从两个String Arrays返回公共元素的最有效方法是什么?我可以用一对for循环来做,但这似乎不是非常有效.根据我对类似SO问题的回顾,我能想出的最好的是转换为a List然后应用:retainAll
List<String> compareList = Arrays.asList(strArr1);
List<String> baseList = Arrays.asList(strArr2);
baseList.retainAll(compareList);
Run Code Online (Sandbox Code Playgroud) 可能重复:
java中arraylists的交集/并集
你好,我有两个字符串数组.我想打印两个arrrays之间的差异.是否有任何java方法?例如;
String[ ] first={"A","B","C"};
String[ ] second={"C","B"};
Run Code Online (Sandbox Code Playgroud)
结果必须是"A".感谢所有评论.
最近,我参加了一次采访.他们让我写一个程序来打印两个字符串中的唯一字母和常用字符.我编写了下面的代码来打印常见字符:
String s1 = "I am living in india";
String s2 = "india is a beautiful country";
char[] s1Array = s1.toCharArray();
char[] s2Array = s2.toCharArray();
LinkedHashSet<Character> s1CharSet = new LinkedHashSet<Character>();
LinkedHashSet<Character> s2CharSet = new LinkedHashSet<Character>();
for(char kc : s1Array){
s1CharSet.add(kc);
}
for(char c: s2Array){
s2CharSet.add(c);
}
s1CharSet.retainAll(s2CharSet);
if(s1CharSet.size()==0){
System.out.println("There are no common characters between the two strings");
}
else{
System.out.println(s1CharSet);
}
}
Run Code Online (Sandbox Code Playgroud)
但他们说他们对我的回答并不满意.我想这是因为他们没有料到retainAll.所以,请告诉我正确的编程方式,以便将来满足它们.
我甚至谷歌搜索,但我没有找到任何好的,可理解的链接.
那么,如何从两个字符串中打印出唯一且常用的字符而不使用retainAll?
任何代码将不胜感激.