import javautilArrays;
import javautilList;
import javautilregexMatcher;
import javautilregexPattern;
public class Joey
{
private static int getSeat(List<String> list)
{
int max = IntegerMIN_VALUE;
int index = 0;
for(int i = 0; i < listsize(); i++)
{
String a = listget(i);
int num = 1;
int j = i + 1;
while(j < listsize() && aequals(listget(j)))
{
num++;
j++;
}
if(max < num)
{
index = i;
max = num;
}
i += num - 1;
}
return index;
}
public static void main(String[] args)
{
//List<String> list = ArraysasList("a", "a", "a", "b", "b", "b", "a", "a", "a", "a", "b", "b", "c");
//List<String> list = ArraysasList("a", "a", "a", "b", "b", "a");
List<String> list = ArraysasList("a", "b", "b", "a");
int i = getSeat(list);
Systemoutprintln(i);
}
}
import javautilArrays;
import javautilIterator;
import javautilList;
import javautilTreeSet;
public class MyCount {
public static void main(String[] args) {
Integer[] arr={1,2,2,2,2,4,4,4,6,6,6,6,12,12,13,13,13,16,17,19,19,19,36,39};
List<Integer> numList=ArraysasList(arr);
TreeSet<Integer> ts=new TreeSet<>(numList);
Iterator<Integer> it=tsiterator();
for (int i=0;ithasNext();) {
int index=++i,num=itnext(),count=0;
Systemoutprintln("工序"+index+":"+num);
for(int j=0;j<numListsize();j++) {
if(numListget(j)==num) {
Systemoutprintln("\t次数:"+(++count)+":"+num);
}
}
}
}
}
把List看成数组,用下标形式龋 例如:取第一个元素:List list =new List();String string=list[0]; 函数解析:String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 SystemChar 对象的有序集
List<Object> list = new ArrayList<Object>();
Object oldObj =
Object newObj =
int index = listindexOf(oldObj);
if(index!=-1){
listadd(index,newObj);
listremove(index+1);
}
如果以上 *** 作有问题,你的类可能需要实现 Comparable 接口
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
java将list相同次数输出到另外一个list,可以使用map作为中间转换的结合,将重复的次数赋值给value,而key值为list原来的内容,实例如下:import javautilArrayList;import javautilHashMap;import javautilList;import javautilMap;public class Test {public static void main(String[] args) {List list = new ArrayList();//新建一个集合listadd(1);listadd(2);listadd(2);listadd(5);listadd(4);listadd(4);listadd(3);listadd(2);Map map = new HashMap();//新建一个map集合,用来保存重复的次数for(Integer obj: list){if(mapcontainsKey(obj)){//判断是否已经有该数值,如有,则将次数加1mapput(obj, mapget(obj)intValue() + 1);}else{mapput(obj, 1);}}ArrayList newList = new ArrayList(mapvalues());//新建另外一个listSystemoutprintln(newListtoString());}}
遍历常用的方法是for循环,增强for循环,还有Iterator
比对的话用String,equals() 方法就好了,当然取出来对比简单,但是算法有点恶劣。 元素比较少的话还好。
List<String> list=new ArrayList<String>();
//第一种
for(int i=1;i<listsize();i++){
}
//第二种
for(String o: list){
}
//第三种
Iterator<String> iter=listiterator();
while(iterhasNext()){
}
大概就这结构吧。
这是搞哪样?
不但大费周章,而且容易错……
先equalSets吧,
private static boolean equalSets(LinkedList list1, LinkedList list2){
return subset(list1,list2)&&subset(list2,list1);// 集合的内容,两集合互为子集就是相等了
}
然后difference,
private static LinkedList difference(LinkedList list1, LinkedList list2){
while(isNull(list2)){
if(isMember(first(list2),list1))
list1=deleteAll(first(list2),list1);// 将重复元素去除
else
list1=add(first(list2),list1);// 非重复元素存入list1
list2=rest(list2);
}
return list1;
}
最后intersect,
private static LinkedList intersect(LinkedList list1, LinkedList list2){
list2=difference(list1,list2);// 得到两集合不同的元素
while(isNull(list2)){
if(isMember(first(list2),list1))
;// 元素重复,什么也不干
else
list1=deleteAll(first(list2),list1);// 非重复元素删除
list2=rest(list2);
}
return list1;
}
以上就是关于Java怎么找一个ArrayList中最长的连续相同元素全部的内容,包括:Java怎么找一个ArrayList中最长的连续相同元素、Java中如何对list集合中相同的元素分类、如何将 List<List<String>gt;中包含相同元素的List进行搜索重组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)