Tag: 集合

Arrays.asList()有疑问吗?

人们说asList方法将数组转换为列表而不是复制,因此’aList’中的每个更改都会反映为’a’。 因此,在’aList’中添加新值是非法的,因为数组具有固定大小。 但是, asList()方法返回ArrayList 。 编译器如何将第3行与5区分开来。第3行给出了exception( UnsupportedOperationException )。 String[] a = {“a”,”b”,”c”,”d”};//1 List aList = Arrays.asList(a);//2 aList.add(“e”);//3 List b = new ArrayList();//4 b.add(“a”);//5

如何将int 数组转换为List?

我希望这段代码显示为true : int[] array = {1, 2}; System.out.println(Arrays.asList(array).contains(1));

使用Streams API对Collection中的n个随机不同元素执行操作

我正在尝试使用Java 8中的Streams API从集合中检索n个唯一的随机元素以进行进一步处理,但是没有太多或任何运气。 更准确地说,我想要这样的东西: Set subList = new HashSet(); Queue collection = new PriorityQueue(); collection.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9)); Random random = new Random(); int n = 4; while (subList.size() v.doSomethingFancy()); 我想尽可能高效地做到这一点。 可以这样做吗? 编辑:我的第二次尝试 – 虽然不是我的目标: List sublist = new ArrayList(collection); Collections.shuffle(sublist); sublist.stream().limit(n).forEach(v -> v.doSomethingFancy()); 编辑:第三次尝试(灵感来自Holger ),如果coll.size()很大且n很小,这将消除很多shuffle的开销: int n = // unique element count List sublist = new ArrayList(collection); […]

如何使用Comparator对ArrayList进行排序?

我有一个实现静态方法的类学生 public static Comparator getCompByName() 返回Student的新比较器对象,通过属性“name”比较2个Students对象。 我现在需要使用我的函数getCompByName()通过’name’对学生ArrayList进行排序来测试它。 这是我的Student课程中的Comparator方法。 public static Comparator getCompByName() { Comparator comp = new Comparator(){ @Override public int compare(Student s1, Student s2) { return s1.name.compareTo(s2.name); } }; return comp; } 而主要我需要测试的地方 public static void main(String[] args) { // TODO code application logic here //——–Student Class Test——————————————- ArrayList students = new ArrayList(); Student […]

是否有Java自定义集合实现的测试套件?

出于好奇,我为一个特殊情况编写了一个自己的Set简单实现(其中所有可能的条目的集合是固定的,但它不是enum )。 它实际上非常简单,但显然,我的实现在没有大量测试的情况下无法使用(甚至可能在那时,但这是另一个主题;它主要是一个练习)。 那么我可以使用任何测试套件进行unit testing吗?

使用本地化排序字符串列表

我想按照用户区域设置排序下面的字符串列表 List words = Arrays.asList( “Äbc”, “äbc”, “Àbc”, “àbc”, “Abc”, “abc”, “ABC” ); 对于不同的用户区域设置,排序输出应根据区域设置而不同。 如何按用户区域设置对上面的列表进行排序? 我试过了 Collections.sort(words , String.CASE_INSENSITIVE_ORDER); 但是这不适用于本地化,那么如何将locale参数传递给Collections.sort()还是有其他有效方法吗?

在Java中按值映射自动排序

我需要在Java中有一个自动按值排序的映射 – 以便在我添加新的键值对或更新现有键值对的值时随时对其进行排序,甚至删除一些条目。 还请记住,这张地图将会非常大(数百万,甚至是数百万条目的大小)。 所以基本上我正在寻找以下function: 假设我们有一个实现上述function的“SortedByValuesMap”类,我们有以下代码: SortedByValuesMap sorted_map = new SortedByValuesMap(); sorted_map.put(“apples”, 4); sorted_map.put(“oranges”, 2); sorted_map.put(“bananas”, 1); sorted_map.put(“lemons”, 3); sorted_map.put(“bananas”, 6); for (String key : sorted_map.keySet()) { System.out.println(key + “:” + sorted_map.get(key)); } 输出应该是: bananas:6 apples:4 lemons:3 oranges:2 特别是,对我来说真正重要的是能够随时获得具有最低值的条目 – 使用如下命令: smallestItem = sorted_map.lastEntry(); 哪个应该给我’橘子’条目 编辑:我是一个Java新手所以请详细说明你的答案 – 谢谢 EDIT2:这可能会有所帮助:我正在使用它来计算大文本文件中的单词(对于那些熟悉的人:特别是n-gram)。 所以我需要建立一个地图,其中键是单词,值是这些单词的频率。 但是,由于限制(如RAM),我想只保留X最常用的单词 – 但事先你不能知道哪些是最常用的单词。 因此,我认为它可能起作用的方式(作为近似)是开始计算单词,当地图达到上限(如1 mil条目)时,将删除最不频繁的条目,以便将地图的大小保持为总是1密耳。

如何删除List 中没有equals / hashcode的重复对象?

我必须删除列表中的重复对象。 它是来自对象Blog的List,如下所示: public class Blog { private String title; private String author; private String url; private String description; … } 复制对象是一个对象,其标题,作者,URL和描述等于其他对象。 我无法改变这个对象。 我不能把新的方法放在上面。 我该怎么做呢?

它们是Java的Map的任何体面的磁盘实现吗?

我正在寻找java.util.Map的磁盘实现。 没有什么太花哨的东西,只是我可以指向一个目录或文件并让它以某种方式将其内容存储在那里。 有谁知道这样的事情?

如何排序对象的Arraylist

我有ArrayList,其中包含足球队(Team Team)。 团队有积分,我想按点数对它们进行排序。 public class Team { private int points; private String name; public Team(String n) { name = n; } public int getPoints { return points; } public void addPoints(boolean win) { if (win==true) { points = points + 3; } else if (win==false) { points = points + 1; } } //… } […]