Tag: list

在Java中声明LinkedList

我总是学习当我们声明我们应该做的集合时, Interface ob = new Class() ,如果我想使用例如LinkedList我会做List ob = new LinkedList() ,但是我无法访问来自LinkedList的所有方法..是不是LinkedList ob = new LinkedList() 100%正确吗?

为什么LinkedList和arraylist在java中扩展AbstractList?

为什么LinkedList和ArrayList在Java中扩展AbstractList ? 当我们想要在实现类中指定公共行为时,使用抽象类。 但是AbstractList中的所有方法都被ArrayList和LinkedList覆盖。 那么扩展这个类有什么用呢?

Java所有确定元素在列表中是相同的

我试图确定列表中的所有元素是否相同。 如: (10,10,10,10,10) –> true (10,10,20,30,30) –> false 我知道hashset可能会有所帮助,但我不知道如何用java编写。 这是我尝试过的,但没有用: public static boolean allElementsTheSame(List templist) { boolean flag = true; String first = templist.get(0); for (int i = 1; i< templist.size() && flag; i++) { if(templist.get(i) != first) flag = false; } return true; }

ClassCastException将List 转换为Class

我有一个方法,它有一个输入列表和每个输入值我必须将其转换为所需的类型。 (实际上这个列表有“some”forms的参数值,我应该转换成所需类型,所需类型是方法所需的类型,这是通过reflection调用api) 我写了这样的代码: Type[] argTypes = method.getGenericParameterTypes(); List acutalValues = // List of actual values from method input. // Resultant list of arguments which will holds casted values. List arguments = new ArrayList(argTypes.length); for (int i = 0; i < argTypes.length; i++) { Class requiredClassTYpe = (Class) argTypes[i]; // argTypes[1] =java.util.List fails.. // cast the […]

hasnext()如何在java中的集合中工作

程序: public class SortedSet1 { public static void main(String[] args) { List ac= new ArrayList(); c.add(ac); ac.add(0,”hai”); ac.add(1,”hw”); ac.add(2,”ai”); ac.add(3,”hi”); ac.add(“hai”); Collections.sort(ac); Iterator it=ac.iterator(); k=0; while(it.hasNext()) { System.out.println(“”+ac.get(k)); k++; } } } 输出:ai hai hi hw hai 怎么执行5次?? 虽然来到没有下一个元素存在所以条件错误。 但它是如何执行的。

有没有更优雅的方式来处理Java中的列表? (Python VS Java)

我喜欢用Python处理列表的方式。 它做任何递归解决方案看起来容易和干净。 例如,在Python中获取元素的所有排列的典型问题如下所示: def permutation_recursion(numbers,sol): if not numbers: print “this is a permutation”, sol for i in range(len(numbers)): permutation_recursion(numbers[:i] + numbers[i+1:], sol + [numbers[i]]) def get_permutations(numbers): permutation_recursion(numbers,list()) if __name__ == “__main__”: get_permutations([1,2,3]) 我喜欢通过像numbers[:i] + numbers[i+1:]或sol + [numbers[i]]这样简单地获取修改列表的新实例的方式 如果我尝试在Java中编写完全相同的代码,它看起来像: import java.util.ArrayList; import java.util.Arrays; class rec { static void permutation_recursion(ArrayList numbers, ArrayList sol) { if (numbers.size() == […]

在Java中显示列表与Python中一样优雅

在Python中,将逗号显示为逗号分隔列表非常容易: >>> iterable = [“a”, “b”, “c”] >>> “, “.join(iterable) ‘a, b, c’ 是否有一种接近这种简洁的Java方式? (注意最后没有“,”。)

使用final关键字声明List字段

如果我在Synapse是抽象类型的类中有以下语句: private final List synapses; final是否允许我仍然能够更改List Synapse对象的状态,但是阻止我将新的Synapse对象添加到列表中? 如果我错了,你能否解释一下final做什么以及何时应该使用关键字final 。

列出维护排序的实现

Java中是否存在基于提供的Comparator维护订单的现有List实现? 可以通过以下方式使用的东西: Comparator cmp = new MyComparator(); List l = new OrderedList(cmp); l.add(someT); 以便插入someT ,以便根据cmp维护列表中的顺序 (关于@andersoj的建议我正在完成我的问题,还有一个请求) 此外,我希望能够按排序顺序遍历列表而不删除元素,即: T min = Const.SMALLEST_T; for (T e: l) { assertTrue(cmp.compare(min, e) >= 0); min = e; } 应该通过。 欢迎所有的建议(除了告诉我在无序的完整列表中使用Collections.sort ),但是,我更喜欢java.*或者最终的org.apache.*因为此时很难引入新的库。 注意:(UPDATE4)我意识到这种列表的实现会有不足的性能。 有两种一般方法: 使用链接结构(种类)B树或类似 使用数组和插入(使用二进制搜索) 没有1. CPU缓存未命中问题否2.在数组中移位元素有问题。 UPDATE2: TreeSet不起作用,因为它使用提供的比较器( MyComparator )来检查是否相等,并基于它假定元素相等并排除它们。 我需要那个比较器只用于排序,而不是“唯一性”过滤(因为元素按其自然顺序不相等) UPDATE3: PriorityQueue不能作为List (因为我需要)工作,因为没有办法按照它“排序”的顺序遍历它,要获得排序顺序中的元素,你必须从集合中删除它们。 更新: 类似的问题: 一个很好的Java排序列表 Java中的排序数组列表

在Java中将Char数组转换为List

任何人都可以帮助我并告诉如何将char数组转换为列表,反之亦然。 我正在尝试编写一个用户输入字符串的程序(例如”Mike is good” ),在输出中,每个空格都被”%20″替换(即”Mike%20is%20good” )。 虽然这可以通过多种方式完成,但由于插入和删除在链表中需要O(1)时间,我想用链表进行尝试。 我正在寻找将char数组转换为列表,更新列表然后将其转换回来的方法。 public class apples { public static void main(String args[]) { Scanner input = new Scanner(System.in); StringBuffer sb = new StringBuffer(input.nextLine()); String s = sb.toString(); char[] c = s.toCharArray(); //LinkedList l = new LinkedList(Arrays.asList(c)); /* giving error “Syntax error on token ” char”, Dimensions expected after this token”*/ […]