Tag: list

使用compareTo()方法按字母顺序对列表进行排序

我正在用java编写电话簿程序,我需要按字母顺序列出列表中的人员,为此我需要为java中的列表编写排序算法,它应该只使用compareTo()方法。 所以有人可以帮助我这样做吗? public void listAlpha() { Node tempNode = head; for(int i = 0; i <= size; i++) { for(int j = 0; j <= i; j++) { int comparison = ((tempNode.getNext().getElement().getName()).compareTo(tempNode.getElement().getName())); if(comparison < 0) { Person tempPerson = tempNode.getElement(); tempNode.setElement(tempNode.getNext().getElement()); tempNode.getNext().setElement(tempPerson); tempNode = tempNode.getNext(); } } } (顺便说一下,这是一个家庭作业,我使用自己的数据结构。) 这是我上面写的方法所属的类: import java.util.*; /** Singly linked […]

带字节数组键和字符串值的HashMap – containsKey()函数不起作用

我正在使用HashMap:byte []键和String值。 但我意识到即使我使用相同的对象(相同的字节数组和相同的字符串值) myList.put(TheSameByteArray, TheSameStringValue) 在HashMap中,表仍然插入一个具有不同HashMapEntry的新对象。 然后函数containsKey()无法正常工作。 有人可以帮我解释一下吗? 我怎样才能解决这个问题? 谢谢。 (Android Java) @Override public boolean containsKey(Object key) { if (key == null) { return entryForNullKey != null; } int hash = Collections.secondaryHash(key); HashMapEntry[] tab = table; for (HashMapEntry e = tab[hash & (tab.length – 1)]; e != null; e = e.next) { K eKey = […]

Java中的“模糊类型”错误是什么?

在下面的代码中,我从最后一行的编译器得到一个错误:“类型列表是不明确的”(在尝试定义cgxHist列表的行上)。 我究竟做错了什么? import java.awt.*; import javax.swing.*; import java.util.*; public class drawr extends JPanel{ public static int animationSpeed=470; public static int diameter = 50; hBod allHBods[]; List cgxHist = new ArrayList(); 我实际上希望列表包含整数,但是当我尝试“强制转换”列表时,通过用替换 ,该行上的错误变为’令牌上的语法错误“int”,Dimensions这个标记’。 建议请。

如何从java中的列表中选择重复值?

例如我的列表包含{4,6,6,7,7,8},我想要最终结果= {6,6,7,7} 一种方法是遍历列表并消除唯一值(在这种情况下为4,8)。 有没有其他有效的方式而不是循环列表? 我问过这个问题,因为我工作的清单非常大? 我的代码是 List duplicate = new ArrayList(); for (int i = 0; i < list.size(); i++) { Long item = (Long) list.get(i); if (!duplicate.contains(item)) { duplicate.add(item); } }

Java垃圾收集器是否会回收包含对其他对象的引用的非引用对象

当我学习LinkedList数据结构时,会出现这个问题。 假设每个链接 (或节点)由一个对象表示,该对象包含两个字段, 数据和下一个链接的下一个点。 如果我想删除一个特定的节点,显然我将更新前一个Link的下一个字段。 但是我应该将删除的链接的下一个字段设置为null,以确保它将被垃圾收集器回收吗? 如果我的描述不清楚,我会尝试概括(或简化)我的问题。 假设类A的对象a1具有一个字段,该字段引用同一类的另一个对象a2 。 如果没有对象a1的引用,它是否有资格获得垃圾收集器? 或者我们必须将a1中的引用字段显式设置为null ? (不关心对象a2 ,除了a1中的引用字段之外还有其他引用)。

List 无法转换为ArrayList

在我的代码的开头,有: List<List> result = new ArrayList(); 然后,(这是反转子列表): List sub = new ArrayList(); re = reverse(result.get(j)); // error occurs here 有这种方法: public ArrayList reverse(ArrayList list) { List newList = new ArrayList(); for(int i=list.size()-1; i>=0; i–) { newList.add(list.get(i));} return newList; } } 错误消息是: List无法转换为ArrayList 为什么?

如何增强for-loop?

我一个接一个地迭代String对象列表的元素: LinkedList list; // add values to the list here for (int i = 0; i < list.size(); i++) System.out.println(list.get(i)); 在这里,每次我在列表上调用get()时,列表从其一端一直迭代到第i个元素 – 因此上述循环的复杂度为O(n ^ 2)。 是一个。)与上面的增强型for循环相同,或者b。)是for循环保持指针的最后位置,因此下面循环的复杂性是O(n)? for (String s:list) System.out.println(s); 如果上面的情况(b) – 我认为是 – 在列表中使用迭代器是否有任何优势。 这是一个简单的迭代 – 没有来回。 编辑:..我的列表操作是只读的。 TIA。

如何将列表分发到子列表中,保持元素的原始顺序?

如何将列表拆分为给定数量的列表,按顺序获取元素并将它们分发到子列表(因此不对列表进行分区)? 我想尽可能“好”(使用Java 8function或番石榴或类似的东西)。 示例列表: [1 2 3 4 5 6 7] 应分为3: [1 4 7] [2 5] [3 6] 应分为2: [1 3 5 7] [2 4 6]

如何使用Java 8从对象列表中获取最小值和最大值

我喜欢上课: public class Test { private String Fname; private String Lname; private String Age; // getters, setters, constructor, toString, equals, hashCode, and so on } 和List testList这样的List testList填充了Test元素。 如何使用Java 8获得最小和最大age值?

类型不匹配错误:Cannont无法从ArrayList 转换为List

这是我的类结构,以及我收到错误的地方 class SuperClass{ //variables } class SubClass1 extends SuperClass{ //variables } class SubClass2 extends SuperClass{ //variables } class AClass{ List list; public AClass(boolean b){ if(b) list = new ArrayList();//getting error here else list = new ArrayList();//and here } void addObjects(SuperClass obj){ list.add(obj); } } 我怎么解决这个问题? 我应该改变我的设计吗? 怎么样? 加成: 当我改变 `List list;` List list; List list; […]