Collection是单列集合的顶层接口,Collection种定义单列集合种的共性内容


public class Demo02 {
public static void main(String[] args) {
// 我们现在要学习Collection接口中的方法
Collection<String> coll = new ArrayList<>();
// boolean add(E e) 添加元素
coll.add("王宝强");
coll.add("谢霆锋");
coll.add("贾乃亮");
coll.add("陈羽凡");
// void clear() 清空集合,删除集合中的所有元素
// coll.clear();
// boolean contains(Object o) 是否包含指定的元素,如果包含返回true
System.out.println(coll.contains("王宝强")); // true
System.out.println(coll.contains("王力宏")); // false
// boolean isEmpty() 判断集合是否为空,如果为空返回true
// System.out.println(coll.isEmpty());
// boolean remove(Object o) 根据内容删除元素
coll.remove("王宝强");
// int size() 获取集合的长度
System.out.println("长度: " + coll.size());
// public Object[] toArray() 把集合中的元素,存储到数组中
Object[] arr = coll.toArray();
for (int i = 0; i < arr.length; i++) {
Object obj = arr[i];
System.out.println(obj);
}
System.out.println(coll);
}
}
public class Demo03 {
public static void main(String[] args) {
// 创建集合
Collection<String> coll = new ArrayList<>();
coll.add("贾乃亮");
coll.add("陈羽凡");
coll.add("王宝强");
coll.add("武大郎");
// 使用迭代器遍历数据
// 1.获取迭代器
Iterator<String> itr = coll.iterator();
// 2.循环判断是否有下一个元素
while (itr.hasNext()) {
// 3.有元素,获取一个元素
String next = itr.next();
System.out.println(next);
} }}
是JDK1.5推出的新特性,一般也称为加强for循环,foreach循环
public class Demo05 {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("李小璐");
coll.add("白百何");
coll.add("张柏芝");
coll.add("马蓉");
// 增强for遍历集合,底层是迭代器
for (String str: coll) {
System.out.println(str);
}
// 判断存在才删除
while (coll.contains("白百何")) {
coll.remove("白百何");
}
System.out.println("--------------------------------------");
// 增强for遍历数组,底层是普通for循环
int[] arr = new int[] {11, 22, 33};
for (int number: arr) {
System.out.println(number);
}
}
}




ArrayList集合底层是数组,查询快,增删慢
ArrayList内部使用Object[] elementData;来存储数据
刚创建ArrayList,elementData数组为0
第一次添加数据时elementData长度为10
当数据超过10个,扩容,容量是以前的1.5倍
eg:10, 15, 22, 33

demo:
public class Demo11 {
public static void main(String[] args) {
// 创建HashSet
Set<String> set = new HashSet<>();
// 添加数据
set.add("郭富城");
set.add("刘德华");
set.add("张学友");
System.out.println(set.add("黎明"));
System.out.println(set.add("黎明"));
System.out.println(set.add("黎明"));
// 遍历集合
for (String s : set) {
System.out.println(s);
}
}
}



自定义类型放入TreeSet中,其是不知道怎么排序的,会出现异常
自然排序Comparable(自定义类实现Comparable接口)
// 类实现了Comparable接口就有自然排序的能力
public class Student implements Comparable<Student> {
private String name;
private int age;
@Override
public int compareTo(Student o) {
// this: 当前对象
// o: 另一个对象
// return this.age - o.age; // 升序
return o.age - this.age; // 降序
} // 类中省略其他}
比较器排序Comparator(使用匿名内部类创建Comparator对象,并重写compara方法)
// 创建TreeSet集合对象(使用比较器排序)
// 比较器的优先级高于,元素的自然顺序
TreeSet<Student> treeSet = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
// return o1.getAge() - o2.getAge(); // 升序
return o2.getAge() - o1.getAge(); // 升序
}
});
我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/
我有以下关于rails的简单问题。假设我有一个模型用户。在View中,如果我这样做:views/user/_user.html.erb中的文件View将为每个用户调用和打印。如何更改它以使用特定View?我需要这样的东西:User.all:template=>"user/_user_2ndview.html"%>有什么帮助吗?提前致谢 最佳答案 您可以使用collection选项:User.all,:partial=>"users/user2ndview",:as=>:user%>View必须放在views/users/_user2
我想按数据库表列“plays”对其进行排序/排序(按我想要的方式降序或升序)我完全糊涂了。刚刚找到了select而不是collection_select的解决方案?我的一些代码不知道如何排序/排序数据库表中还有一些列,如“plays”、“goals”... 最佳答案 只需将实际排序的集合传递给collection_select助手:collection_select(:post,:author_id,Author.order('created_atDESC'),:id,:name_with_initial,:prompt=>true
我正在使用以下代码来显示类别的TreeView选择框:grouped_collection_select(:categories,:category_id,Category.top_level,:children,:name,:id,:name,:include_blank=>true)如何更改它以允许多选?此外,是否可以让它显示复选框而不是选择框? 最佳答案 尝试grouped_collection_select(:categories,:category_id,Category.top_level,:children,:name
我正在使用Rails3.2和ActiveAdmin0.4.4开发应用程序。我有一个名为Teaser的模型(/app/models/teaser.rb):classTeasertruemount_uploader:img,TeaserUploaderend然后我向其中添加了ActiveAdmin(/app/admin/teaser.rb):#encoding:UTF-8ActiveAdmin.registerTeaserdoformdo|f|f.inputs"Teaser"dof.input:name,:label=>'Текст'f.input:url,:label=>'Ссылка'
有什么方法可以将印象派gem与分页一起使用?我尝试将印象派用于will_paginate集合,如下所示:posts=Post.all.paginate(:page=>params[:page])impressionist(posts)但是它引发了这个错误:WillPaginate::Collectionisnotimpressionable!有什么方法可以直接在View上使用印象派方法? 最佳答案 will_paginate生成的集合不易受影响意味着您正在阅读,它的类没有调用is_impressionable,正如您的模型应该调用的
我知道如何组合一个从模型中获取值的简单选择框"PleaseSelectaSector")%>我的问题是如何允许用户选择多个选项,然后将它们存储在模型中。我知道我需要使用:multiple=>true但不确定语法通常对于一个模型的多个条目,我会使用accepts_nested_attributes_for,但我认为我不需要对这个例子这样做是否正确?谢谢 最佳答案 经过一些尝试和错误后确定"PleaseSelectaSector"},{:multiple=>true})%>让我选择多个选项
在google上有很多关于此搜索的结果,甚至有人在SO上询问过-但到目前为止讨论的解决方案对我没有帮助。问题是:我有一个form_for@company|f|并且我正在为company_status_id使用f.collection_select-但是当加载表单时,如果已设置,我希望选择实际的公司状态。通过我知道的调试器,它已被设置,但我在那里显示了一个默认值。这是代码:=puts@company.company_status_id=f.collection_select:company_status_id,ListCache.company_statuses,:id,:name,{:
我有这样一行:{:value=>(policy_address.state.namerescuenil)},:required=>true,:collection=>states.map{|s|[s.name,s.id]},:include_blank=>'Pleaseselect'%>我想从states.map集合中排除一个值。我认为这行得通,但行不通:{:value=>(policy_address.state.namerescuenil)},:required=>true,:collection=>states.map{|s|[s.name,s.id]unlesss.name==
我看过HowdoIsettheHTMLoptionsforcollection_selectinRails?我确信我遗漏了一些明显的东西,但我无法让它发挥作用。我的选择目前看起来像:'Broadcaston...'%>我已经尝试包括:class=>'prevent_collapse',它什么都不做,以及{:class=>'prevent_collapse'},它给出我出错了。如果有人能指出如何做到这一点,我将不胜感激! 最佳答案 collection_select(object,method,collection,value_met